Отсортировать четные строки матрицы 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) в порядке убывания, а не четные в порядке возрастания. Список действий, которые выполняются в коде:

  1. Включаются необходимые заголовочные файлы:
    • stdio.h - для работы с функциями ввода-вывода;
    • stdlib.h - для работы со стандартными функциями C, включая функцию rand() и qsort().
  2. Определяются значения переменных:
    • n и m - определяют размерность матрицы mas. Значение n равно 10, а m равно 9;
    • mas - матрица, которая будет содержать значения от -10 до 100.
  3. Функция cmpfunc и cmpfunc1:
    • Эти две функции используются для сравнения элементов матрицы при сортировке.
    • cmpfunc сортирует элементы в порядке возрастания, а cmpfunc1 - в порядке убывания.
  4. Основная функция main:
    • С помощью цикла for матрица mas заполняется случайными значениями от -10 до 100;
    • С помощью цикла for и условного оператора if сортируются только четные строки матрицы mas. Если строка четная, то она сортируется с помощью функции qsort() в порядке убывания, используя функцию cmpfunc1. В противном случае, она остается неизменной;
    • С помощью цикла for выводятся отсортированные значения матрицы mas.
  5. Функция qsort:
    • Эта функция используется для сортировки элементов матрицы mas. Она принимает массив, количество элементов, размер одного элемента и функцию сравнения в качестве аргументов.
  6. Возвращаемое значение функции main:
    • Значение 0 возвращается в качестве результата работы функции main, что означает успешное выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.333 из 5
Похожие ответы