Массив: Вывести номера первой и последней строк, содержащих только положительные элементы. - C (СИ)
Формулировка задачи:
Дана таблица 5x10 заполненная целыми числами. Вывести номера первой и последней строк, содержащих только положительные элементы. Если таких строк нет, то вывести 0.
Я конечно понимаю, что прошу многое, но я совершенно не понимаю как их делать(
Решение задачи: «Массив: Вывести номера первой и последней строк, содержащих только положительные элементы.»
textual
Листинг программы
#include <stdio.h>
#include <locale.h>
#define N 5
#define M 10
int main(void){
setlocale(LC_ALL,"RU");
int i,j,first=0, last=0;
int A[N][M] = {{3,24,45,11,0,67,23,19,59,1045},{76,54,6,378,2,1024,987,23968,1,34},{674,21,45,63,2,43,675,9364,-5647,0},{5764,867,1243,98,4,768,3452,564,-9,1},{5643,4,34,564,5784,23,1,7564,32,76}};
for(i = 0; i < N; i++){
for(j = 0; j < M; j++){
if(A[i][j] <= 0)break;
}
if(j==M){first =i+1; printf("Номер первой строки: %d\n",first); goto m1;}
}
printf("%d\n",0); return(0);
m1:
for(i=N-1;i>=0;i--){
for(j=0;j<M;j++){
if(A[i][j]<=0)break;
}
if(j==M){last=i+1; printf("Номер последней строки: %d\n",last); return(0);
}
}
return(0);
}
Объяснение кода листинга программы
В этом коде ищется первая и последняя строки массива, которые содержат только положительные числа. Вот список действий:
- В первой строке определяются размеры массива N и M.
- Затем в цикле перебираются все строки массива.
- В каждой строке в цикле перебираются все элементы.
- Если элемент больше или равен нулю, то цикл прерывается.
- Если после перебора всех элементов цикла не произошло прерывания, то текущая строка является строкой, содержащей только положительные числа.
- После выхода из циклов выводится номер этой строки.
- Затем в цикле перебираются все строки массива в обратном порядке.
- В каждой строке в цикле перебираются все элементы.
- Если элемент больше или равен нулю, то цикл прерывается.
- Если после перебора всех элементов цикла не произошло прерывания, то текущая строка является последней строкой, содержащей только положительные числа.
- После выхода из циклов выводится номер этой строки.
- Код завершается. Список переменных: — N - размер массива по строкам — M - размер массива по столбцам — i, j - индексы текущей строки и столбца — first - номер первой строки, содержащей только положительные числа — last - номер последней строки, содержащей только положительные числа — A[i][j] - элемент массива, который в данный момент проверяется — 0 - признак того, что цикл прервался из-за нахождения отрицательного элемента — M-1 - признак того, что цикл перебора строк завершен — N-1 - признак того, что цикл перебора строк в обратном порядке завершен