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

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

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

Доброго времени суток. Помогите с программой.Задание нужно отсортировать массив прямоугольной матрицы по строкам. Сортировка: в начале все отрицательные элементы первым самый большой по модулю, в конце второй по модулю и тд то есть если было -2 -8 -4 -1 отсортирует -8 -2 -1 -4, потом все нули, далее все положительные элементы первым самый маленький по модулю, в конце второй по малости и тд, 2 8 4 1 отсортирует 1 4 8 2. Заранее благодарен.

Решение задачи: «Отсортировать массив прямоугольной матрицы по строкам методом пузырька»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5. int i,j,k,c,d;
  6. int a[10][6] = { 2,-4, 0,-5, 1, 7,
  7.                 -9, 0,-7, 8, 6,-3,
  8.                 -1, 7,-3, 3,-6, 0,
  9.                  9,-2, 5,-8, 4,-2,
  10.                 -5, 0, 1,-2,-9, 0,
  11.                  8, 4,-6, 7,-1,-3,
  12.                 -1, 0, 0, 9,-2, 4,
  13.                  6,-8, 4, 0,-2, 2,
  14.                  4, 2,-7,-8, 0,-6,
  15.                  0, 3,-4,-3, 7,-8};
  16.  
  17. printf("Default array\n");
  18. for (i=0;i<10;i++){
  19.     for(j=0;j<6;j++)
  20.     printf("%3d",a[i][j]);
  21.     printf("\n");}
  22.  
  23.  
  24. for (d=0;d<6;d++){
  25.     for (i=0;i<9;i++){
  26.         for (j=i;j<10;j++){
  27.             if (a[j][d]<a[i][d]){
  28.                c=a[j][d]; k=j;
  29.                a[k][d]=a[i][d]; a[i][d]=c;}}}}
  30. for (d=0;d<6;d++){
  31. for (i=0;i<5;i++){
  32.     c=a[i][d]; a[i][d]=a[9-i][d]; a[9-i][d]=c;}}
  33.  
  34.  
  35. for (d=0;d<6;d++){
  36.     for (i=0;i<9;i++){
  37.         for (j=i;j<10;j++)
  38.             if (a[j][d]<a[i][d] && (a[j][d]*a[i][d])>0){
  39.                c=a[j][d]; k=j; a[k][d]=a[i][d]; a[i][d]=c;}}}
  40.  
  41.  
  42. printf("Sorted array\n");
  43. for (i=0;i<10;i++){
  44.     for(j=0;j<6;j++)
  45.         printf("%3d",a[i][j]);
  46.     printf("\n");}
  47. getchar();
  48. return 1;
  49. }

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

В этом коде реализуется сортировка массива прямоугольной матрицы по строкам методом пузырька. Список действий:

  1. Создание массива: В первой строке объявляется массив a[10][6], который содержит исходные данные. Значения массива представлены в виде списка чисел, разделенных запятыми.
  2. Вывод исходных данных: С помощью двух вложенных циклов выводятся все элементы исходного массива.
  3. Перестановка элементов внутри строки: Для каждой строки массива выполняется перестановка элементов таким образом, чтобы они упорядочивались по возрастанию. Для этого используется еще один вложенный цикл.
  4. Перестановка строк: Аналогично предыдущему шагу выполняется перестановка строк таким образом, чтобы они упорядочивались по возрастанию.
  5. Вывод отсортированных данных: После сортировки массива выводятся отсортированные данные.
  6. Завершение работы программы: В конце программы вызывается функция getchar(), которая ожидает нажатия любой клавиши, и функция return 1;, которая завершает работу программы.

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


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

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

14   голосов , оценка 4.071 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы