Сортировка строк двумерного массива - C (СИ)

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

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

Листинг программы
  1. #include<stdio.h>
  2. main()
  3. {
  4. int A[3][3],i,j,c;
  5. clrscr();
  6. for(i=0;i<3;i++)
  7. for(j=0;j<3;j++)
  8. scanf("%d",&A[i][j]);
  9. for(i=0;i<3;i++)
  10. for(j=0;j<3;j++)
  11. if (A[i][0]>A[j][0])
  12. {
  13. c=A[i][0];
  14. A[i][0]=A[j][0];
  15. A[j][0]=c;
  16. }
  17. for(i=0;i<3;i++)
  18. {
  19. for(j=0;j<3;j++)
  20. {
  21. printf("%2d",A[i][j]);
  22. }
  23. printf("\n");
  24. }
  25. }

Решение задачи: «Сортировка строк двумерного массива»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. #define L 5                     // line
  4. #define C 5                     // column
  5.  
  6. int main()
  7. {
  8.     int A [L][C] = {0};
  9.     int B [C] = {0};                // clipboard
  10.     int i, j, pass;
  11.  
  12.     for (i = 0; i <= L - 1; i++)
  13.         for (j = 0; j <= C - 1; j++)
  14.             scanf ("%2d", &A [i][j]);
  15.  
  16.     pass = 0;
  17.     while (pass <= L - 1)
  18.     {
  19.         i = 0;
  20.         for (i = 0; i <= L - 2; i++)
  21.         {
  22.             j = 0;
  23.             if (A [i][j] > A [i + 1][j])
  24.             {
  25.                 for (j = 0; j <= C - 1; j++) {
  26.                     B [j] = A [i][j];
  27.                     A [i][j] = A [i + 1][j];
  28.                     A [i + 1][j] = B [j];
  29.                 }
  30.             }
  31.         }
  32.         pass++;
  33.     }
  34.  
  35.     for (i = 0; i <= L - 1; i++)
  36.     {
  37.         for (j = 0; j <= C - 1; j++)
  38.             printf ("%2d", A [i][j]);
  39.         printf ("\n");
  40.     }
  41.     return 0;
  42. }

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

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

  1. В начале кода объявляется двумерный массив A размером L на C и одномерный массив B размером C.
  2. Затем происходит заполнение массива A с помощью функции scanf.
  3. Создается переменная pass, которая будет использоваться для отслеживания количества проходов в цикле.
  4. Затем идет внешний цикл, который выполняется до тех пор, пока не будет отсортирован массив по возрастанию.
  5. Внутри внешнего цикла идет внутренний цикл, который итерируется по массиву A, но не до конца, так как мы уже знаем, что массив отсортирован.
  6. Если текущий элемент массива A больше следующего, то они меняются местами, и этот факт запоминается в массиве B.
  7. После внутреннего цикла увеличивается значение переменной pass.
  8. После внешнего цикла происходит вывод отсортированного массива A с помощью функции printf.
  9. В конце кода возвращается 0, что означает успешное выполнение программы.

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


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

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

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

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

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

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