Проверка двумерного массива на наличие ряда неположительных чисел
#include <iostream>
using namespace std;
#include <stdlib.h>
int main()
{
int stolbiki; //столбики
int radi; //ряды
int numbers[20][20];
float srand(time(NULL));
for (stolbiki = 1; stolbiki < 21; ++stolbiki)
{
for (radi = 1; radi < 21; ++radi)
{
numbers[radi][20] = rand() % 41 - 20;
cout << numbers[radi][20] << " ";
}
cout <<endl ;
}
}
По условию надо создать таблицу 20 на 20 со случайными числами, а зачем проверить столбики на условие: содержит ли какой-то столбик только неположительные числа, если да - то вывести номер столбика, если нет - то к примеру соответствующую надпись.
Могу предположить, что неположительные числа одного столбика можно помещать в отдельный массив, а затем подсчитав количество элементов в нем и проверив на равность 20 (всего элементов в столбике именно 20), вывести номер этого столбика.
Вероятность 20 неположительных чисел подряд маленькая, но это не важно.
Ответы (1 шт):
Во-первых, вы неправильно работаете с массивом, ведь нумерация идёт с нуля, а не с единицы.
Теперь по сути вопроса. Ни к чему дополнительное хранилище. Просто обходите массив по столбикам (кстати, в заголовке написано - по рядам), перед циклом по столбику установив flag=0. Если встретили положительное число, устанавливаете флаг в 1 и делаете break. После цикла выводите сообщение в зависимости от флага.
P.S. для того, чтобы вероятность таких столбиков была заметной, можно сдвинуть диапазон генерации, например, отнимать 36