喵帕斯之矩阵
莲酱得到了一个矩阵,不过这个矩阵特别丑,莲酱一脸嫌弃。为了让莲酱不再嫌弃这个矩阵,请你把这个矩阵变的更漂亮些。
比如这里有一个比较丑的矩阵
我们通过把对角线的元素进行升序排序,这个矩阵就会变得漂亮(对莲酱来说)
排序后的结果如下图
对于 n = 4 的矩阵来说要保证排序完的矩阵(a[i][j] 代表第 i 行 j 列):
a[3][1] <= a[4][2]
a[2][1] <= a[3][2] <= a[4][3]
a[1][1] <= a[2][2] <= a[3][3] <= a[4][4]
a[1][2] <= a[2][3] <= a[3][4]
a[1][3] <= a[2][4]
Input
多组输入直到EOF 。(保证组数小于 100)
每组数据第一行输入一个 N ,代表矩阵的列数和行数。(1 <= N <= 100)
接下来输入 N 行,每行有 N 个数 ai。(1 <= ai <= 100)
Output
每组数据输出 N 行 N 列,为排序后的矩阵。
Sample Input
4
2 7 6 8
1 2 6 9
2 6 6 21
8 9 22 3
Sample Output
2 6 6 8
1 2 7 9
2 6 3 21
8 9 22 6
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,i,j,k;
int a[200][200];
while(~scanf("%d",&n))
{
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
scanf("%d",&a[i][j]);
}
}
for(k=1; k<=n-1; k++)
{
for(i=1; i<=n-1; i++)
{
for(j=1; j<=n-1; j++)
{
int t;
if(a[i][j]>a[i+1][j+1])
{
t=a[i][j];
a[i][j]=a[i+1][j+1];
a[i+1][j+1]=t;
}
}
}
}
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
if(j==n)
printf("%d\n",a[i][j]);
else
printf("%d ",a[i][j]);
}
}
}
return 0;
}