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

看不懂,可以解释一下吗

#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;

}

  看不懂



提问者:子非鱼12138 2019-12-02 13:19

个回答

  • 慕数据1585476
    2020-02-07 14:39:57

    333   

  • 慕斯卡1215
    2019-12-02 15:22:49

    我之前也看不懂,后来自己算一遍就整明白了。你找一张草纸,自己手动模拟计算过程。

    我的草纸内容和思路:(我的个人理解嗷,不是多正规,但至少说通了)

    i代表的第几行,每一个J是一个空格,每一个K是一个*

    这个结构是i是父循环,J和K平行,都是子循环

    首先是大条件i=1,i<5,i++

    然后开始执行子循环,子循环一直进行,直到受限制再进行下一轮父循环

    第一轮子循环:j=i=1,j<5,j++     就一直执行这个嘛  j就等于1,有一个J了,就输出一个空格,然后循环,J=2,在输出一个空格,然后J=3,J=4,一共输出了四个空格,1234我理解为每一个数字都标志着有一个J了,每一个J就是一个空格,然后就是四个空格。

    J到5了不行了,所以J的子循环结束,开始K的那个子循环。

    K=0,k<1,k++,然后k=1了,然后也只能到1了。就输出一个*

    第二个子循环结束,第一行结果为”口口口口*“

    开始换行执行下一个父循环

    于是第二行的是口口口***

    第三行              口口*****

    第四行              口*******

    解释完了,不知道你整明白没。。。。