Переписать двумерный массив в одномерный и отсортировать его в порядке убывания (методом выбора) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Разработать программу, что переписывает двумерный массив в одномерный и сортирует его в порядке убывания. Использовать метод выбора. Помогите, код желательно не С++ а Си

Решение задачи: «Переписать двумерный массив в одномерный и отсортировать его в порядке убывания (методом выбора)»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
int intcmp(const void *e1, const void *e2)
{
    //  возрастание return *(int *) e1 - *(int *) e2;
    // убывание 
    return -(*(int *) e1 - *(int *) e2);
}
 
int main()
{
    int mas[][5] = {
            {1,2,3,4,5},
            {6,7,8,9,10},
            {11,12,13,14,15},
            {16,17,18,19,20}
            };
            
    int x[20];
    int i, j, n,  k = 0;
 
    for(i = 0; i < sizeof mas / sizeof *mas; ++i)
        for(j =0; j < sizeof mas[0] / sizeof **mas; ++j)
            {
                x[k] = mas[i][j];
                ++k;
            }
            
    n = sizeof x / sizeof *x;
        
    for(i = 0; i < n; ++i) printf("%4d", x[i]);// выводим массив
    
    qsort(x, n, sizeof(int), intcmp);   // изменяем значения массива
    
    printf("\n\n");
 
    for(i = 0; i < n; ++i) printf("%4d", x[i]); // выводим новый массив
    return 0;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Создаём функцию сортировки, использующую метод выбора
  3. Задаём исходный двумерный массив
  4. Создаём одномерный массив для копирования
  5. Инициализируем счётчик для копирования
  6. Проходим по всем элементам исходного массива и копируем их в новый массив
  7. Вычисляем размер нового массива
  8. Сортируем новый массив методом выбора
  9. Выводим отсортированный массив на экран
  10. Возвращаем 0, чтобы программа завершилась успехом

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


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

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

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