Отсортировать четные строки матрицы X (10x9) в порядке убывания, а не четные в порядке возрастания - C (СИ)
Формулировка задачи:
Отсортировать четные строки матрицы X (10x9) в порядке убывания, а не четные в порядке возрастания. Определить функцию для сортировки одной строки. Вот как это сделать именно для одной строки? Я ее написал но там жуткое мясцо помогите пожалуйста
Решение задачи: «Отсортировать четные строки матрицы X (10x9) в порядке убывания, а не четные в порядке возрастания»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #define n 10 #define m 9 int cmpfunc (const void * a, const void * b) { return ( *(int*)a - *(int*)b ); } int cmpfunc1 (const void * a, const void * b) { return ( *(int*)b - *(int*)a ); } int main(){ int mas[n][m]; int i, j; printf("IN: \n"); for(i = 0; i < n; i++){ for(j = 0; j < m; j++){ mas[i][j] = rand()%100 - 10; printf("%d ", mas[i][j]); } printf("\n"); } printf("\nOUT: \n"); for(i = 0; i < n; i++){ if(i % 2 == 0){ qsort(mas, m, sizeof(int), cmpfunc); } qsort(mas, m, sizeof(int), cmpfunc1); } for(i = 0; i < n; i++){ for(j = 0; j < m; j++){ printf("%d ", mas[i][j]); } printf("\n"); } return 0; }
Объяснение кода листинга программы
Код представляет собой программу на языке C, которая сортирует четные строки матрицы X (10x9) в порядке убывания, а не четные в порядке возрастания. Список действий, которые выполняются в коде:
- Включаются необходимые заголовочные файлы:
stdio.h
- для работы с функциями ввода-вывода;stdlib.h
- для работы со стандартными функциями C, включая функциюrand()
иqsort()
.
- Определяются значения переменных:
n
иm
- определяют размерность матрицыmas
. Значениеn
равно 10, аm
равно 9;mas
- матрица, которая будет содержать значения от -10 до 100.
- Функция
cmpfunc
иcmpfunc1
:- Эти две функции используются для сравнения элементов матрицы при сортировке.
cmpfunc
сортирует элементы в порядке возрастания, аcmpfunc1
- в порядке убывания.
- Основная функция
main
:- С помощью цикла
for
матрицаmas
заполняется случайными значениями от -10 до 100; - С помощью цикла
for
и условного оператораif
сортируются только четные строки матрицыmas
. Если строка четная, то она сортируется с помощью функцииqsort()
в порядке убывания, используя функциюcmpfunc1
. В противном случае, она остается неизменной; - С помощью цикла
for
выводятся отсортированные значения матрицыmas
.
- С помощью цикла
- Функция
qsort
:- Эта функция используется для сортировки элементов матрицы
mas
. Она принимает массив, количество элементов, размер одного элемента и функцию сравнения в качестве аргументов.
- Эта функция используется для сортировки элементов матрицы
- Возвращаемое значение функции
main
:- Значение 0 возвращается в качестве результата работы функции
main
, что означает успешное выполнение программы.
- Значение 0 возвращается в качестве результата работы функции
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д