1135_【填空题】方阵

2022-5-16 18:17| 发布者: Hocassian| 查看: 101| 评论: 0|原作者: 肇庆学院ACM合集

摘要:
C:\Users\Administrator\Downloads\2019-10-12-10-14-2-89503635429299-Problem List-采集的数据-后羿采集器.html

Pro.ID

1135

Title

【填空题】 方阵

Title链接

http://10.20.2.8/oj/exercise/problem?problem_id=1135

AC

500

Submit

792

Ratio

63.13%

时间&空间限制

  • Time Limit: 1000/500 MS (Java/Others)     Memory Limit: 65536/32768 K (Java/Others)
  • 描述

    一个n阶方阵,四边由自然数围绕(顺时针方向旋转),内部元素全部是0。

    如下是一个这样的4阶方阵:

       1    2    3    4
      12    0    0    5
      11    0    0    6
      10    9    8    7

    给出一份代码如下,请在4个横线处各填一行代码,使之能在本系统上提交并AC。

    /*
    由于方阵四周的非零元素是按顺时针走的,所以采用思路:先从左到右填第一行,从上到下填最后一列,从右到左填最后一行,最后从下到上填第一列。
    */
    #include <stdio.h>
    int a[100][100] = { 0 };  // 定义方阵(二维数组),并初始化
    int main()
    {
       _____________  // 定义变量
       while( scanf("%d", &n) == 1 )
       {
           // 从1开始填
           count = 1;
           // 第一行
           for( j = 0; j < n; j++ )
               a[0][j] = count++;
           // 最后一列
           for( i = 1; i < n-1; i++ )
               _____________
           // 最后一行
           for( j = n-1; j >= 0; j-- )
               a[n-1][j] = count++;
           // 第一列
           _____________
               a[i][0] = count++;
           // 输出方阵
           for(i = 0; i < n; i++)
           {
               for( j = 0; j < n; j++ )
                   printf( "%d ", a[i][j]);
               _____________  // 输出换行
           }
       }
       return 0;
    }

    输入

    单测试用例。

    测试用例仅一行:一个正整数n(1 < n ≤ 100)。

    输出

    Description

    一个n阶方阵,四边由自然数围绕(顺时针方向旋转),内部元素全部是0。

    如下是一个这样的4阶方阵:

       1    2    3    4
      12    0    0    5
      11    0    0    6
      10    9    8    7

    给出一份代码如下,请在4个横线处各填一行代码,使之能在本系统上提交并AC。

    /*
    由于方阵四周的非零元素是按顺时针走的,所以采用思路:先从左到右填第一行,从上到下填最后一列,从右到左填最后一行,最后从下到上填第一列。
    */
    #include <stdio.h>
    int a[100][100] = { 0 };  // 定义方阵(二维数组),并初始化
    int main()
    {
       _____________  // 定义变量
       while( scanf("%d", &n) == 1 )
       {
           // 从1开始填
           count = 1;
           // 第一行
           for( j = 0; j < n; j++ )
               a[0][j] = count++;
           // 最后一列
           for( i = 1; i < n-1; i++ )
               _____________
           // 最后一行
           for( j = n-1; j >= 0; j-- )
               a[n-1][j] = count++;
           // 第一列
           _____________
               a[i][0] = count++;
           // 输出方阵
           for(i = 0; i < n; i++)
           {
               for( j = 0; j < n; j++ )
                   printf( "%d ", a[i][j]);
               _____________  // 输出换行
           }
       }
       return 0;
    }

    Input

    单测试用例。

    测试用例仅一行:一个正整数n(1 < n ≤ 100)。

    Output

    为每个测试用例输出一个如此形式的n阶方阵。每个元素后面跟一个空格。

    Sample Input

    4

    Sample Output

    1 2 3 4
    12 0 0 5
    11 0 0 6
    10 9 8 7

    Hint

    亲,你知道么: IT专业是不用鼠标的,是敲键盘的。亲平时敲坏了多少键盘?

    Source

    样例输入

    4

    样例输出

    1 2 3 4
    12 0 0 5
    11 0 0 6
    10 9 8 7

    提示

    亲,你知道么: IT专业是不用鼠标的,是敲键盘的。亲平时敲坏了多少键盘?


    路过

    雷人

    握手

    鲜花

    鸡蛋

    最新评论

    返回顶部