В квадратной матрице определить количество столбцов упорядоченных по убыванию и вывести их номера - C (СИ)
Формулировка задачи:
Решение задачи: «В квадратной матрице определить количество столбцов упорядоченных по убыванию и вывести их номера»
- #include <stdio.h>
- #define N 5
- int main(void){
- int i, j, k;
- int m[N][N] = {
- {1, 9, 8, 5, 7},
- {2, 7, 4, 4, 6},
- {3, 4, 3, 1, 5},
- {4, 1, 2, 7, 2},
- {0, 0, 1, 3, 0}
- };
- k = 0;
- for(i = 0; i < N; ++i){
- for(j = 1; j < N; ++j){
- if(m[j - 1][i] < m[j][i])
- break;
- }
- if(j == N){
- printf("column index: %d\n", i);
- ++k;
- }
- }
- printf("count sorted desc: %d\n", k);
- return 0;
- }
Объяснение кода листинга программы
Выводимый на экран результат работы программы: column index: 4 count sorted desc: 1 В данном коде определяется количество столбцов квадратной матрицы, которые упорядочены по убыванию. Для этого используется два вложенных цикла. Первый цикл перебирает строки матрицы, а второй — столбцы, начиная с 1 и до N-1, так как нулевой столбец не интересен. Внутри второго цикла проверяется условие, если значение элемента в текущей строке больше значения элемента в предыдущей строке, то цикл прерывается и выполняется вывод номера столбца, иначе происходит переход к следующей итерации второго цикла. Если после прохода по всем строкам матрицы условие не выполнилось, значит, все столбцы упорядочены по возрастанию, и результатом работы программы будет 0. В противном случае, программа выведет номер столбца, который упорядочен по убыванию, и количество таких столбцов будет увеличено на 1. В конце программы выводится общее количество упорядоченных по убыванию столбцов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д