解题思路:
分情况讨论
注意事项:循环数

参考代码:


#include <stdio.h>

int main()

{//用数字1,2,3,4,...,n*n这n2个数蛇形填充规模为n*n的方阵。

//蛇形填充方法为:对于每一条左下-右上的斜线,从左上到右下依次编号1,2,...,2n-1;按编号从小到大的顺序,将数字从小到大填入各条斜线,

//编号为奇数的从左下向右上填写,编号为偶数的从右上到左下填写。

//例如,当n=4时,填写的方阵为:

//1 2 6 7

//3 5 8 13

//4 9 12 14

//10 11 15 16

//输入n,输出填写的方阵。

    int n;

    scanf("%d",&n);

    int a[n][n];

    int i,j,k;

    for(i=0;i<n;i++)

    {

        for(j=0;j<n;j++)

        {

            a[i][j]=0;

        }

    }

    int num=1;

    for(k=1;k<=2*n-1;k++)

    {

        if(k%2==1)

        {

            for(j=0;j<n;j++)

            {

                for(i=0;i<n;i++)

                {

                    if(i+j==k-1)

                    {

                        a[i][j]=num;

                        num++;

                    }

                }

            }

        }

        else

        {

            for(j=n-1;j>=0;j--)

            {

                for(i=n-1;i>=0;i--)

                {

                    if(i+j==k-1)

                    {

                        a[i][j]=num;

                        num++;

                    }

                }

            }

        }

    }

    for(i=0;i<n;i++)

    {

        for(j=0;j<n;j++)

        {

            printf("%d ",a[i][j]);

        }

        printf("\n");}


    return 0;

}


点赞(0)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论