Сортировка строк двумерного массива - C (СИ)
Формулировка задачи:
#include<stdio.h>
main()
{
int A[3][3],i,j,c;
clrscr();
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&A[i][j]);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if (A[i][0]>A[j][0])
{
c=A[i][0];
A[i][0]=A[j][0];
A[j][0]=c;
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%2d",A[i][j]);
}
printf("\n");
}
}Решение задачи: «Сортировка строк двумерного массива»
textual
Листинг программы
#include <stdio.h>
#define L 5 // line
#define C 5 // column
int main()
{
int A [L][C] = {0};
int B [C] = {0}; // clipboard
int i, j, pass;
for (i = 0; i <= L - 1; i++)
for (j = 0; j <= C - 1; j++)
scanf ("%2d", &A [i][j]);
pass = 0;
while (pass <= L - 1)
{
i = 0;
for (i = 0; i <= L - 2; i++)
{
j = 0;
if (A [i][j] > A [i + 1][j])
{
for (j = 0; j <= C - 1; j++) {
B [j] = A [i][j];
A [i][j] = A [i + 1][j];
A [i + 1][j] = B [j];
}
}
}
pass++;
}
for (i = 0; i <= L - 1; i++)
{
for (j = 0; j <= C - 1; j++)
printf ("%2d", A [i][j]);
printf ("\n");
}
return 0;
}
Объяснение кода листинга программы
В этом коде представлена сортировка двумерного массива строк методом пузырька.
- В начале кода объявляется двумерный массив A размером L на C и одномерный массив B размером C.
- Затем происходит заполнение массива A с помощью функции scanf.
- Создается переменная pass, которая будет использоваться для отслеживания количества проходов в цикле.
- Затем идет внешний цикл, который выполняется до тех пор, пока не будет отсортирован массив по возрастанию.
- Внутри внешнего цикла идет внутренний цикл, который итерируется по массиву A, но не до конца, так как мы уже знаем, что массив отсортирован.
- Если текущий элемент массива A больше следующего, то они меняются местами, и этот факт запоминается в массиве B.
- После внутреннего цикла увеличивается значение переменной pass.
- После внешнего цикла происходит вывод отсортированного массива A с помощью функции printf.
- В конце кода возвращается 0, что означает успешное выполнение программы.