Найти в матрице первую строку, все элементы которой упорядочены по возрастанию - C (СИ) (74707)
Формулировка задачи:
Найти в матрице первую строку, все элементы которой упорядочены по возрастанию. Изменить упорядоченность элементов этой строки на обратную.
ой не указатели, а тема: Функции. Строки.
Решение задачи: «Найти в матрице первую строку, все элементы которой упорядочены по возрастанию»
textual
Листинг программы
- #include <stdio.h>
- #define N 3
- #define M 3
- int matrix[N][M] = {
- {2,3,9},
- {1,3,2},
- {4,5,6},
- {7,8,9},
- {5,6,7}
- };
- void asort(int *arr)
- {
- int i, j;
- for(i = 0; i < M / 2; i++)
- {
- int tmp = arr[i];
- arr[i] = arr[M - i - 1];
- arr[M - i - 1] = tmp;
- // printf("%d ", arr[i]);
- }
- }
- int main()
- {
- int i,j;
- int flag = 1;
- int resSt = 1;
- /**
- В этом цикле мы идем по строкам.
- **/
- for(i = 0; i < N; i++)
- {
- /**
- Идем уже по строке
- **/
- for(j = 0; j < M - 1; j++)
- {
- if(matrix[i][j] > matrix[i][j + 1])
- flag = 0;
- }
- if(flag)
- resSt = i;
- }
- //printf("%d ", resSt);
- for(i = 0; i < M; i++)
- printf("%d ", matrix[resSt][i]);
- asort(matrix[resSt]);
- printf("\n");
- for(i = 0; i < M; i++)
- printf("%d ", matrix[resSt][i]);
- }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Определяем размеры матрицы
- Инициализируем матрицу
- Создаем функцию для сортировки элементов матрицы
- Создаем основную функцию программы
- Инициализируем переменные
- Проходим по всем строкам матрицы
- Проходим по элементам текущей строки
- Проверяем, если текущий элемент больше следующего, то меняем их местами и устанавливаем флаг
- Если флаг установлен, то сохраняем номер строки в переменную resSt
- Выводим первую строку матрицы, все элементы которой упорядочены по возрастанию
- Сортируем элементы первой строки матрицы
- Выводим отсортированную первую строку матрицы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д