喵帕斯之矩阵 SDUT

喵帕斯之矩阵 SDUT

Time Limit: 1000 ms Memory Limit: 65536 KiB
Submit Statistic

Problem Description

在这里插入图片描述

莲酱得到了一个矩阵,不过这个矩阵特别丑,莲酱一脸嫌弃。为了让莲酱不再嫌弃这个矩阵,请你把这个矩阵变的更漂亮些。
比如这里有一个比较丑的矩阵
在这里插入图片描述

我们通过把对角线的元素进行升序排序,这个矩阵就会变得漂亮(对莲酱来说)
在这里插入图片描述
排序后的结果如下图
在这里插入图片描述

对于 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

Hint
Source

【2017级《程序设计基础(B)I》期末上机考试】Fish

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int n,i,j,t;
int a[120][190];
while(~scanf("%d",&n))
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
for(int k=0;k<n-1;k++){

          for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-1;j++)
        {
            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=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
           if(j==n-1)
            printf("%d\n",a[i][j]);
            else printf("%d ",a[i][j]);
        }
    }
}
return 0;

}

/***************************************************
User name: jk180233lqx
Result: Accepted
Take time: 84ms
Take Memory: 176KB
Submit time: 2019-01-04 18:28:03
****************************************************/

猜你喜欢

转载自blog.csdn.net/weixin_43892738/article/details/85924218