Нужно обработать двумерный массив так, чтобы максимальные элементы были размещены по диагонали на языке си
Путем перестановки элементов квадратной вещественной матрицы добиться того, чтобы ее максимальный элемент находился в левом верхнем углу, следующий по величине - в позиции (1,1), следующий по величине - в позиции (2,2) и т. д., заполнив таким образом всю главную диагональ. Нужно так же, чтоб элементы не дублировались , а именно менялись местами. В большинстве случаев работает правильно, но иногда дает сбой и неправильно расставляет элементы Help!
int i, j;
for (int n = 0; n < N; n++)
{
int row = 0, col = 0;
int max = -30000;
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
{
if (i != j || i > n)
if (a[i][j]>max)
{
max = a[i][j];
row = i; col = j;
}
}
int temp = a[n][n];
a[n][n] = a[row][col];
a[row][col] = temp;
}
for(i = 0; i < N; ++i)
{
for(j = 0; j < N; ++j)
{
printf("%d\t ", a[i][j]);
}
printf("\n");
}
return 0;
}