Есть матрица M x N, нужно найти номер первой из строк, не содержащих ни одного положительного элемента.Спасибо! Застрял...
В этой демонстрационной программе показано, как найти в матрице строку, не содержащую ни одного положительного элемента, с помощью стандартных алгоритмов и обычных циклов.
#include <iostream>
#include <iomanip>
#include <functional>
#include <algorithm>
#include <iterator>
#include <cstdlib>
#include <ctime>
int main()
{
const size_t M = 20;
const size_t N = 6;
int a[M][N];
std::srand( ( unsigned int )std::time( nullptr ) );
for ( auto &row : a )
{
for ( int &x : row ) x = std::rand() % int( M * N ) - int( M * N / 2 );
}
for ( const auto &row : a )
{
for ( int x : row ) std::cout << std::setw( 3 ) << x << ' ';
std::cout << std::endl;
}
auto all_non_positive = []( const auto &row )
{
return std::none_of( std::begin( row ), std::end( row ),
std::bind2nd( std::greater<int>(), 0 ) );
};
auto it = std::find_if( std::begin( a ), std::end( a ), all_non_positive );
if ( it == std::end( a ) )
{
std::cout << "There is no row that does not contain positive numbers" << std::endl;
}
else
{
std::cout << "Row #" << std::distance( std::begin( a ), it )
<< " contains only non-positive numbers" << std::endl;
}
bool found = false;
size_t i = 0;
for ( ; not found && i < M; i += not found )
{
size_t j = 0;
while ( j < N && a[i][j] <= 0 ) ++j;
found = j == N;
}
if ( not found )
{
std::cout << "There is no row that does not contain positive numbers" << std::endl;
}
else
{
std::cout << "Row #" << i
<< " contains only non-positive numbers" << std::endl;
}
return 0;
}
Вывод программы на консоль может выглядеть следующим образом
-46 8 -10 -48 -6 -44
49 46 -35 -21 9 -41
50 7 27 31 -4 -38
21 -13 47 -52 35 -27
53 19 -22 -17 54 48
-58 -60 -4 -16 -55 42
0 54 21 17 -27 -30
28 -44 29 -12 39 -43
10 0 4 -11 0 -20
22 -7 59 53 28 45
41 30 46 -31 -54 51
-48 -1 37 33 -44 -58
55 45 -42 24 -27 57
34 35 -11 -22 -36 49
18 39 -25 9 32 -57
-5 5 26 -19 34 32
-36 38 -37 -59 3 -20
-57 -10 -43 -46 -53 -18
-57 41 -43 -15 -41 -27
-26 30 -56 9 -21 28
Row #17 contains only non-positive numbers
Row #17 contains only non-positive numbers
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужна программа для считывания данных с внешнего сайта с временным обновлением и звуковым оповещением
Создал переменную, сделал её рандомной, выдаёт всегда 5, сколько бы ты не писал startПодскажите пожалуйста, где проблема?
https://code-liveru/post/cpp-functions/#more - здесь читаю, не могу понять функции с возвращением значения