Отсортировать четные строки матрицы 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 возвращается в качестве результата работы функции