喵帕斯之矩阵

Time Limit: 1000MS Memory Limit: 65536KB

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 列,为排序后的矩阵。

Example Input

4
2 7 6 8
1 2 6 9
2 6 6 21
8 9 22 3

Example Output

2 6 6 8
1 2 7 9
2 6 3 21
8 9 22 6


#include<stdio.h>
int main(void)
{
    int i, n, a[100][100], j, k, max;


    while(~scanf("%d", &n))
    {
        for(i = 0; i < n; i++)
       {
           for(j = 0; j < n; j++)
           {
               scanf("%d", &a[i][j]);
           }
       }
       for(k = 0; k < n; k++)     // 因为 要排序 所以 利用了 冒泡排序, 因为 最多循环n - 1次
       {
           for(i = 0; i < n - 1; i++)
           {
               for(j = 0; j < n - 1; j++)   // 二维数组对角线 排序 的 方式

               {
                   if(a[i][j] > a[i + 1][j + 1])
                   {
                       max = a[i][j], a[i][j] = a[i + 1][j + 1], a[i + 1][j + 1] = max;
                   }
               }
           }
       }
       for(i = 0; i < n; i++)
       {
           for(j = 0; j < n; j++)
           {
               printf("%d%c", a[i][j], j == n - 1?'\n':' ');
           }
       }
    }
    return 0;
}

相关文章:

  • 2021-05-12
  • 2021-05-05
  • 2022-12-23
  • 2021-06-15
  • 2021-07-15
猜你喜欢
  • 2021-12-18
  • 2021-05-23
  • 2021-09-14
  • 2022-12-23
  • 2021-08-09
相关资源
相似解决方案