这个程序怎么运行啊

来源:4-12 循环结构之多重循环

罗欣

2015-12-19 12:29

#include <stdio.h>
int main()
{
    int i, j, k;
    for(i=1; i<5; i++)
    {
        /* 观察每行的空格数量,补全循环条件 */
        for(    j=i;j<5 ;  j++  ) 
        {
            printf(" ");    //输出空格
        }
        /* 观察每行*号的数量,补全循环条件 */
        for( k=0 ;k< 2*i-1;  k++    )
        {
            printf("*");   //每行输出的*号
        }
        printf("\n");     //每次循环换行
    }
    return 0;
}

写回答 关注

4回答

  • 小猫过河
    2015-12-27 21:32:30
    #include <stdio.h>
    int main()
    {
        int i, j, k;                      //定义三个int类型的数
        for(i=1; i<5; i++)                //外循环i初始值1,循环5次
        { 
    /* 观察每行的空格数量,补全循环条件 */
            for(    j=i ;  j<5 ;  j++ )  //内循环1,j=i表示j受i约束,即第一次循环j=1,第二次j=2 ,... 
            {
                printf(" ");  //输出空格 //j=1时输1个空格整个(外)循环结束4个,j=2时整个(外)循环结束3个
                
            }
            //printf(j);
            /* 观察每行*号的数量,补全循环条件 */
            for( k=0 ;  k<i*2-1;  k++)   //k<i*2-1第一次循环i=1,k=1*2-1=1,第二次等于3,...
            {
                printf("*");   //每行输出的*号,第一次循环输出1*,二次3*,三次5*
            }
            
            printf("\n");     //每次循环换行
        }
        return 0;
    }

    这个程序难理解的地方大概就是第一个内循环 j=i 和第二个内循环k=i*2-1,实例过程如下(空格用s表示,换行n):

    第一次循环:(外循环下同)

    ssss*n                   内循环 1,j=1,1<5,输出4个空格,内循环2,k=1*2-1=1,输出1*

    第二次循环:

    ssss*n                            

    sss***n                   内循环1(第2次,下同),j=2,2<5,输出3个空格,内循环2(第二次,下同),k=3        

    第三次循环

    ssss*n

    sss***n

    ss*****n                 内循环1(3),j=3,3<5,输出2个空格,内循环2(3),k=5

    第四次循环

    ssss*n

    sss***n

    ss*****n

    s*******n               内循环1(4),j=4,4<5,输出1个空格,内循环2(4),k=7 

    整个循环结束  #这是我的笔记      

    qq_我的乌...

    那个k=0 k<2*i-1 有点看不懂

    2016-01-20 15:24:23

    共 1 条回复 >

  • 粥粥0
    2015-12-24 08:13:14

    /* Note:Your choice is C IDE 

       *

      ***

     *****

    *******

     *****

      ***

       *

    */

    #include "stdio.h"

    void main()

    {

        int i,j,j1=5,k;//i:行, j:*的数量, k:空格数量

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

          {for(k=i;k<4;k++)

            printf(" ");

            for(j=1;j<=i*2-1;j++)

             printf("*");

            printf("\n");

          }

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

          { 

          for(k=i;k>0;k--)

           printf(" ");

          for(j=j1;j>0;j--)

           printf("*");

          j1-=2;//保持j能够以每行少2个

          printf("\n");        

          }

    }

         

          

    Any_on...

    最后那半段看不懂诶

    2015-12-30 21:27:37

    共 1 条回复 >

  • 流浪_老
    2015-12-19 23:56:28

    根据循环输出空格 和*号啊

  • 小蜗牛不回头
    2015-12-19 13:24:13

    嵌套循环呢,外面的循环控制行i=1,表示第一行,然后进行里面,内循环控制输出空格和*,第一个内循环输出一行的空格,第二个内循环控制输出一行的*。里面的循环结束后就输出好了一行,然后再到了外循环,i=2到第二行循环,以此类推。

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926021 学习 · 20793 问题

查看课程

相似问题