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

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

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

возникла проблема, не могу переделать код для сортировки массива на код для сортировки двумерной матрицы. вот исходный код
Листинг программы
  1. void sort(int A[],int n)
  2. {int k,i,j;
  3. for (i=1;i<n;i++)
  4. {int v=A[i];
  5. for(k=0;k<i && A[k]<v;k++);
  6. for(int j=i-1;j>=k;j--)
  7. A[j+1]=A[j];
  8. A[k]=v;}
  9. }
  10. #include <stdio.h>
  11. #include <math.h>
  12. #include <conio.h>
  13. # define n 6
  14. int main()
  15. { int a[n];
  16. int q,min,nom,s,per,vtr,o;
  17. printf("Vvedite massiv iz 6 4isel");
  18. for (q=0;q<n;q++)
  19. scanf("%d",&a[q]);
  20. int d=sizeof(a)/sizeof(int);
  21. sort(a,d);
  22. printf("\n Nash massiv");
  23. for(q=0;q<n;q++)
  24. printf("%d",a[q]);
  25. getch();
  26. }
пыталась его переделать на
Листинг программы
  1. void sort(int A[20][20],int n)
  2. {int k,i,j;
  3. for(i=0;i<n;i++)
  4. for (j=1;j<n;j++)
  5. {int v=A[i][j];
  6. for(k=0;k<j && A[i][k]<v;k++);
  7. for(int q=j-1;j>=k;q--)
  8. A[i][q+1]=A[i][q];
  9. A[i][k]=v;}
  10. }
  11.  
  12. #include <stdio.h>
  13. #include <math.h>
  14. #include <conio.h>
  15. int main()
  16. { int a[20][20];
  17. int i,j,n,o,str,w,;
  18. printf("Vvedite n");
  19. scanf("%d",&n);
  20. printf("Vvedite matrix");
  21. for (i=0;i<n;i++)//q
  22. for(j=0;j<n;j++)//s
  23. {scanf("%d",&a[i][j]);}
  24.  
  25. int d=sizeof(a)/sizeof(int);
  26. sort(a,d);
  27. printf(" \n matriza \n");
  28. for (i=0;i<n;i++)
  29. {for(j=0;j<n;j++)
  30. printf("%d \t",a[i][j]);
  31. printf("\n");}
  32. getch();
  33. }
но безуспешно. Помогите пожалуйста разобраться

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

textual
Листинг программы
  1. //---------------------------------------------------------------------------
  2.  
  3. #include <vcl.h>
  4. #include <iostream.h>
  5. #include <conio.h>
  6. #include <stdlib.h>
  7. #pragma hdrstop
  8.  
  9. //---------------------------------------------------------------------------
  10.  
  11. #pragma argsused
  12.  
  13. void sort ( int );
  14.  
  15. void sort ( int mas [20][20] )
  16. {
  17.         int i,j, tmp;
  18.         bool chk = true;
  19.  
  20.         while ( chk )
  21.         {
  22.                 chk = false;
  23.  
  24.                 for ( i = 0; i < 20; i++ )
  25.                 {
  26.                         for ( j = 0; j < 20; j ++)
  27.                         {
  28.                                 if ( j == 20-1 && i == 20-1 )
  29.                                 break;
  30.  
  31.                                 if ( i != 20-1 )
  32.                                 {
  33.                                         if ( mas [i][j] < mas [i+1][j] )
  34.                                         {
  35.                                                 tmp = mas [i][j];
  36.                                                 mas [i][j] = mas [i+1][j];
  37.                                                 mas [i+1][j] = tmp;
  38.                                                 chk = true;
  39.                                         }
  40.                                 }
  41.                         }
  42.                 }
  43.         }
  44. }
  45.  
  46. int main(int argc, char* argv[])
  47. {
  48.         int i,j, mas [20][20];
  49.  
  50.         for ( i = 0; i < 20; i++ )
  51.         {
  52.                 for ( j = 0; j < 20; j++ )
  53.                 {
  54.                         mas [i][j] = rand () % 9;
  55.                 }
  56.         }
  57.  
  58.         sort ( mas );
  59.  
  60.         for ( i = 0; i < 20; i++ )
  61.         {
  62.                 for ( j = 0; j< 20; j ++ )
  63.                 {
  64.                         cout << mas [i][j] << " ";
  65.                 }
  66.  
  67.                 cout << endl;
  68.         }
  69.  
  70.         getch ();
  71.  
  72.         return 0;
  73. }
  74. //---------------------------------------------------------------------------

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

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

  1. Ввод матрицы: с помощью двух вложенных циклов заполняем матрицу случайными значениями от 0 до 8.
  2. Вызов функции сортировки: вызываем функцию sort(), передавая в нее матрицу.
  3. Сортировка матрицы: внутри функции sort() используется два вложенных цикла. Первый цикл перебирает строки матрицы, а второй - столбцы. Внутри второго цикла проверяется условие: если текущий элемент больше следующего, то меняем их местами и устанавливаем флаг chk в true.
  4. Вывод отсортированной матрицы: после сортировки выводим значения матрицы на экран.
  5. Ввод: программа ожидает нажатия клавиши для завершения работы.

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


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

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

6   голосов , оценка 4.333 из 5

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

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

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