找出整型方阵A每列绝对值最大的元素,并与同行对角线元素进行交换。
特别说明:方阵行列数n不超过20。
输入
第一行是方阵A的行列数n,接着的n行是方阵A的元素。
输出
输出交换完成后的矩阵,每个数字占三个字符的宽度,右对齐,同行相邻两个数字间用一个空格隔开,每行最后一个数字后面没有空格.
样例输入
5
1 8 2 -10 5
10 2 7 15 33
15 20 78 11 3
1 12 21 -2 7
-18 1 -9 5 17
样例输出
1 8 2 -10 5
10 33 7 15 2
15 78 20 11 3
1 12 -2 21 7
17 1 -9 5 -18
*/
#include <math.h>
#define SIZE 25
int main()
{
int a[SIZE][SIZE];
int i, j, n, ms, t;
scanf("%d", &n);
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
scanf("%d", &a[i][j]);
}
}
for (j = 0; j < n; j++)记住列
{
ms = 0;
for (i = 1; i < n; i++)//记住行
{
if (abs(a[i][j]) > abs(a[ms][j]))
ms = i;
}
t = a[ms][j];
a[ms][j] = a[ms][ms];
a[ms][ms] = t;
}
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
printf("%3d", a[i][j]);
if (j != n - 1)
putchar(' ');
}
putchar('\n');
}
return 0;
}