Zff121017 2024-06-04 16:28 采纳率: 60%
浏览 2
已结题

二维数组基本练习——蛇形填数C++03

二维数组基本练习——蛇形填数
几道题不会
尽量有代码
题目1描述
在nn方阵里填入1,2,3,…,nn,要求填成蛇形。例如n=5时方阵为:

1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9

输入
一行 n (保证n<=8)
输出
蛇形填数矩阵,使用printf("%d ",a[i][j]);
样例输入 复制
5
样例输出 复制
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9

题目2描述
在nn方阵里填入1,2,3,…,nn,要求填成蛇形。例如n=5时方阵为:
5 4 3 2 1
6 19 18 17 16
7 20 25 24 15
8 21 22 23 14
9 10 11 12 13

输入
一行 n(n<=8)
输出
蛇形填数矩阵
样例输入 复制
5
样例输出 复制
5 4 3 2 1
6 19 18 17 16
7 20 25 24 15
8 21 22 23 14
9 10 11 12 13

  • 写回答

2条回答 默认 最新

  • 为荣誉而拼搏少年 2024-06-04 20:54
    关注
    #include<iostream>
    #include<iomanip>
    #include<cstring>
    using namespace std;
    int main()
    {
        int n,i,j,k,t=0,a[21][21];
        cin>>n;
        for(k=1;k<=n;k++)
            if(k%2)
                for(j=1;j<=k;j++)
                {
                    i=k+1-j;
                    t++;
                    a[i][j]=t;
                    a[n+1-i][n+1-j]=n*n+1-t;
                }
            else
                for(j=k;j>=1;j--)
                {
                    i=k+1-j;
                    t++;
                    a[i][j]=t;
                    a[n+1-i][n+1-j]=n*n+1-t;
                }
        for(i=1;i<=n;i++)
        {
            for(j=n;j>=1;j--)
                cout<<setw(5)<<a[i][j];
            cout<<endl;
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月13日
  • 已采纳回答 6月5日
  • 创建了问题 6月4日