Самый правый положительный элемент строки матрицы - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Подскажите пожалуйста как найти самый правый положительный элемент каждой строки матрицы?

Решение задачи: «Самый правый положительный элемент строки матрицы»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define M 5
  5. #define N 7
  6. int main()
  7. {
  8.     int i, j, right, flag, A[M][N];
  9.     srand(time(0));
  10.     for(i = 0; i < M; ++i){
  11.         right = 0;
  12.         flag = 0;
  13.         for(j = 0; j < N; ++j){
  14.             A[i][j] = rand() % 200 - 100;
  15.             printf("%4d", A[i][j]);
  16.             if(A[i][j] > 0)
  17.                 flag = 1;
  18.             if(A[i][j] > 0 && j > right)
  19.                 right = j;
  20.         }
  21.         if(!flag)
  22.             puts(" This line have not positive elements.");
  23.         else
  24.             printf(" The rightmost positive line item A[%d][%d] = %d\n", i, right, A[i][right]);
  25.     }
  26.     return 0;
  27. }

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

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

  1. Переменная i используется для прохода по строкам матрицы (итерируется от 0 до 4).
  2. Переменная j используется для прохода по столбцам матрицы (итерируется от 0 до 6).
  3. Переменная right используется для хранения индекса самого правого положительного элемента в строке.
  4. Переменная flag используется для проверки наличия положительных элементов в строке (итерируется от 0 до 6).
  5. Переменная A[i][j] используется для хранения значения элемента матрицы, инициализируется случайным числом от -100 до 100.
  6. Выводится значение A[i][j] с помощью функции printf, при этом выводимое значение округляется до 4 цифр с помощью спецификатора формата %4d.
  7. Если A[i][j] больше 0, то flag устанавливается в 1.
  8. Если A[i][j] больше 0 и j больше right, то right устанавливается равным j.
  9. После завершения прохода по всем столбцам, если flag равен 0, то выводится сообщение This line have not positive elements. с помощью функции puts.
  10. Если flag не равен 0, то выводится сообщение The rightmost positive line item A[%d][%d] = %d\n с помощью функции printf, при этом i, right и A[i][right] подставляются в соответствующие места в сообщении.
  11. В конце программы возвращается 0, что означает успешное выполнение программы.

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


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

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

12   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы