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

思路分享,共同讨论

父循环:控制行数

子循环:1.输出空格;2.输出*;

对应关系:

第<1>行,<4>空格<1>*

第<2>行,<3>空格<3>*

第<3>行,<2>空格<5>*

......

4个空格1个*表示子循环中的第1个循环运行了4次,第2个循环运行了1次

类推......

只要控制两个子循环for里面的循环条件运行次数可以根据夫循环行数对应起来就实现了  

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


提问者:慕仙0203526 2020-03-12 14:45

个回答

  • nycolas
    2020-03-12 23:44:00

    子循环——输出空格:

    第1行 3个

    第2行 2个

    第3行 1个

    第4行 0个

    ....

    第i行 (4-i)个

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