Переписать двумерный массив в одномерный и отсортировать его в порядке убывания (методом выбора) - 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; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Создаём функцию сортировки, использующую метод выбора
- Задаём исходный двумерный массив
- Создаём одномерный массив для копирования
- Инициализируем счётчик для копирования
- Проходим по всем элементам исходного массива и копируем их в новый массив
- Вычисляем размер нового массива
- Сортируем новый массив методом выбора
- Выводим отсортированный массив на экран
- Возвращаем 0, чтобы программа завершилась успехом
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д