Найти в матрице первую строку, все элементы которой упорядочены по возрастанию - 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
- Выводим первую строку матрицы, все элементы которой упорядочены по возрастанию
- Сортируем элементы первой строки матрицы
- Выводим отсортированную первую строку матрицы