H2430819060


私信TA

用户名:dotcpp0797210

访问量:88

签 名:

等  级
排  名 2130
经  验 2451
参赛次数 1
文章发表 2
年  龄 0
在职情况 学生
学  校 贺州学院
专  业

  自我简介:

TA的其他文章

解题思路:

1.看题目和例子,我们根据以往做题经验可知,要写一个二维数组。

2.输出有特殊限制,并且各个数之间有隐藏的规律。

3.我们的核心是分析例子,找出数字排列的规律,分析输出的要求。

注意事项:

审题要仔细,要求多组输入,想到while的用法;

二维数组的输出要用到双重for循环;

循环的嵌套书写需要一定的熟练度。


参考代码:

#include

int main()

{

     int n;

     int a[100][100] = { 0 };

    //连续输入整数n


    while (~scanf("%d", &n))

    {

            int i,j;

            //序列是从1开始的

           a[0][0] = 1;


            /*观察第一行序列的规律知道,1 3 6 10 15 

              1和3差2,  3和6差3,  6和10差4,  10和15差5,

              定义t去实现该规律*/


           int t = 2;


          //第一行

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

         {

               a[0][j] = a[0][j - 1] + t;

                t++;

         }


           /*其余行的规律都与上一行有关;

              2=3-1,5=6-1;

              都是各自上一后一位数减一。*/


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

            {

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

                {

                    a[i][j] = a[i - 1][j + 1] - 1;

                }

            }


           //输出蛇形矩阵

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

           {

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

                {

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

                }

              //别忘了输出完一行后要换行

                   printf("\n");

            }


    }

    return 0;

}


 

0.0分

0 人评分

新上线《蓝桥杯辅导》课程,近五年的蓝桥杯省赛与国赛真题都有,从读题开始理解题意、梳理思路、实现代码再提交评测全过程,可有效提升获奖比例甚至进国赛!课程介绍、试听请猛击这里

  评论区

  • «
  • »