问答详情
源自:4-12 循环结构之多重循环

不是很懂这个程序,请问有大佬路过给我讲解一下么?

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");     //每次循环换行
    }

提问者:Unspx_owner 2018-01-26 14:46

个回答

  • ArsNova
    2018-01-26 15:36:42
    已采纳

    *****代码一共两层循环,第一层控制行数,第二层控制输出。

    第一层循环是控制行数,如当i=1,就是进入第一行进行输出。

    *****进入第一层循环后,开始第二层循环。

    首先是输出空格,每行空格数递减,第一行需要4个空格,第二行需要3个空格,以此类推,所以令j=i,随着i的递增,空格循环次数减小。

    当空格输出完毕,则开始输出*,当i=1,k的值为1,由于k初值为0,所以会循环1次,也就是输出1个*,到这里*循环结束,跳出for循环,再执行"\n"换行。

    到这里i=1的循环结束,然后开始i=2的循环。

    *****不知道看不看得懂啊。。。。。。