Дана матрица 5 на 5. Упорядочить по возрастанию элементы каждого из столбцов.
если брать такие тестовые данные:
1 2 3
4 5 6
7 8 9 , то результат:
1 2 3
4 5 0
7 8 6
Не пойму ,в чём дело! Объясните пожалуйста.
#include <STDIO.H>
#include <CONIO.H>
const int n = 3;
void main ()
{
clrscr();
int a[n] [n], i, j;
FILE *fp;
printf ("\n\n Vvedite elementi matrichi, ih dolshno bit' 25!\n");
for (i = 0; i < n; i++)
for (j = 0; j <n; j++)
scanf ("%d" , & a[i] [j]);
fp = fopen("out3-9.txt", "w");
fprintf (fp, "\n Isshodnai matrica: \n");
for (i = 0; i <n; i++)
{
for (j = 0; j < n; j++)
fprintf (fp, "%3d ", a[i] [j]);
fprintf (fp, "\n");
}
fprintf (fp, "=============================================\n");
for (j = 0; j < n; j++)
for (int k = 0; k < n-1; k++)
for (i = 0; i < n-k ; i++)
if (a[i][j]>a[i+1][j])
{
int b;
b = a[i][j];
a[i][j] = a[i+1][j];
a[i+1][j]=b;
}
fprintf (fp, "\n New matrica: \n");
for (i = 0; i <n; i++)
{
for (j = 0; j < n; j++)
fprintf (fp, "%3d ", a[i] [j]);
fprintf (fp, "\n");
}
fclose(fp);
printf("Dly prosmotra rezyl'tatov raboti programi otkroi'te fail OUT3-3.TXT \n v standartnom kataloge!");
}
for (int k = 0; k < n; k++) // Здесь - До (n) ...
for (i = 0; i < n-k - 1 ; i++) // <--- а вот тут До (-1) надо делать ...