Отсортировать массив прямоугольной матрицы по строкам методом пузырька - C (СИ)
Формулировка задачи:
Доброго времени суток. Помогите с программой.Задание нужно отсортировать массив прямоугольной матрицы по строкам. Сортировка: в начале все отрицательные элементы первым самый большой по модулю, в конце второй по модулю и тд то есть если было -2 -8 -4 -1 отсортирует -8 -2 -1 -4, потом все нули, далее все положительные элементы первым самый маленький по модулю, в конце второй по малости и тд, 2 8 4 1 отсортирует 1 4 8 2. Заранее благодарен.
Решение задачи: «Отсортировать массив прямоугольной матрицы по строкам методом пузырька»
textual
Листинг программы
#include <stdio.h> int main(void) { int i,j,k,c,d; int a[10][6] = { 2,-4, 0,-5, 1, 7, -9, 0,-7, 8, 6,-3, -1, 7,-3, 3,-6, 0, 9,-2, 5,-8, 4,-2, -5, 0, 1,-2,-9, 0, 8, 4,-6, 7,-1,-3, -1, 0, 0, 9,-2, 4, 6,-8, 4, 0,-2, 2, 4, 2,-7,-8, 0,-6, 0, 3,-4,-3, 7,-8}; printf("Default array\n"); for (i=0;i<10;i++){ for(j=0;j<6;j++) printf("%3d",a[i][j]); printf("\n");} for (d=0;d<6;d++){ for (i=0;i<9;i++){ for (j=i;j<10;j++){ if (a[j][d]<a[i][d]){ c=a[j][d]; k=j; a[k][d]=a[i][d]; a[i][d]=c;}}}} for (d=0;d<6;d++){ for (i=0;i<5;i++){ c=a[i][d]; a[i][d]=a[9-i][d]; a[9-i][d]=c;}} for (d=0;d<6;d++){ for (i=0;i<9;i++){ for (j=i;j<10;j++) if (a[j][d]<a[i][d] && (a[j][d]*a[i][d])>0){ c=a[j][d]; k=j; a[k][d]=a[i][d]; a[i][d]=c;}}} printf("Sorted array\n"); for (i=0;i<10;i++){ for(j=0;j<6;j++) printf("%3d",a[i][j]); printf("\n");} getchar(); return 1; }
Объяснение кода листинга программы
В этом коде реализуется сортировка массива прямоугольной матрицы по строкам методом пузырька. Список действий:
- Создание массива: В первой строке объявляется массив a[10][6], который содержит исходные данные. Значения массива представлены в виде списка чисел, разделенных запятыми.
- Вывод исходных данных: С помощью двух вложенных циклов выводятся все элементы исходного массива.
- Перестановка элементов внутри строки: Для каждой строки массива выполняется перестановка элементов таким образом, чтобы они упорядочивались по возрастанию. Для этого используется еще один вложенный цикл.
- Перестановка строк: Аналогично предыдущему шагу выполняется перестановка строк таким образом, чтобы они упорядочивались по возрастанию.
- Вывод отсортированных данных: После сортировки массива выводятся отсортированные данные.
- Завершение работы программы: В конце программы вызывается функция getchar(), которая ожидает нажатия любой клавиши, и функция return 1;, которая завершает работу программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д