Массив: Вывести номера первой и последней строк, содержащих только положительные элементы. - 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);
                       }

Объяснение кода листинга программы

В этом коде ищется первая и последняя строки массива, которые содержат только положительные числа. Вот список действий:

  1. В первой строке определяются размеры массива N и M.
  2. Затем в цикле перебираются все строки массива.
  3. В каждой строке в цикле перебираются все элементы.
  4. Если элемент больше или равен нулю, то цикл прерывается.
  5. Если после перебора всех элементов цикла не произошло прерывания, то текущая строка является строкой, содержащей только положительные числа.
  6. После выхода из циклов выводится номер этой строки.
  7. Затем в цикле перебираются все строки массива в обратном порядке.
  8. В каждой строке в цикле перебираются все элементы.
  9. Если элемент больше или равен нулю, то цикл прерывается.
  10. Если после перебора всех элементов цикла не произошло прерывания, то текущая строка является последней строкой, содержащей только положительные числа.
  11. После выхода из циклов выводится номер этой строки.
  12. Код завершается. Список переменных: — N - размер массива по строкам — M - размер массива по столбцам — i, j - индексы текущей строки и столбца — first - номер первой строки, содержащей только положительные числа — last - номер последней строки, содержащей только положительные числа — A[i][j] - элемент массива, который в данный момент проверяется — 0 - признак того, что цикл прервался из-за нахождения отрицательного элемента — M-1 - признак того, что цикл перебора строк завершен — N-1 - признак того, что цикл перебора строк в обратном порядке завершен

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы