解题思路:(1)观察蛇形矩阵存在两个规律:①行和列都存在一个递增关系;②每行首数据可以用一个递增值加上一个值得到。

              (2)可以先把每行首元素输出,在处理首元素后面的数据,第一行首元素处理则是首元素+2+递增变量来处理;第二行同理,只不过2是一个递增变量,也                就是加3再加递增变量;

              (3)第一层循环用一个变量递减,用来刷新每行元素个数判断

              (4)外层循环处理行,内存循环处理列;内层循环用一个if判断,输出\n来换行


注意事项:①内层变量记得清零,在进循环处理

               ②内存循环从每行第二个数开始

参考代码:


#include <stdio.h>


int main(void)

{

    int x,y,N;                                                      //x-列控制;y-行控制;N-输入数据

    int printf_num,first_num=1;                       //printf_num-输出的单个数据;first_num-每行的首个数据

    scanf("%d",&N);

    int N_flag=N;                                             //N_falg-用来刷新每行减少输出的数

    int add_flag=0;                                          //行递增

    int flag;                                                      //内层循环,递增变量,控制每次加的数值

    int z=2;                                                      //第一行,第一个到第二个元素变化的差值,行列转换规律都需要用它处理


    for(y=1;y<=N;y++)

    {

        first_num+=add_flag;

        printf_num=first_num;

        flag=0;

        printf("%d ",first_num);

        for(x=2;x<=N_flag;x++)

        {

                printf_num+=z+flag;

                printf("%d", printf_num);

                    if (x==N_flag)

                    {

                        printf("\n");

                    }

                    else {

                        printf(" ");

                    }

                flag++;    

                }

        add_flag++;

        N_flag--;

        z++;

    }      

}



点赞(0)
 

0.0分

1 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论