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

输出三角形

循环结构之多重循环
在功能需求上,往往一个循环满足不了,比如:循环用一个“*”输出,得到一下图形

上面这个例子显然我们用一个循环不是太容易实现,这个时候我们就要用到多重循环,多重循环就是在循环结构的循环体中又出现循环结构。
在实际开发中一般最多用到三层重循环。因为循环层数越多,运行时间越长,程序越复杂,所以一般用2-3层多重循环就可以了。另外不同循环之间也是可以嵌套的。
多重循环在执行的过程中,外层循环为父循环,内层循环为子循环,父循环一次,子循环需要全部执行完,直到跳出循环。父循环再进入下一次,子循环继续执行...

注:一个父循环可以有多个子循环
那么上面这个用“*”输出的矩形用多重循环实现如下:

任务
使用双重循环实现输出正三角形,效果如下

在代码编辑器中:
第8、13行根据注释提示补全所有代码
hello.c
#include <stdio.h>
int main()
{
int i, j, k;
for(i=1; i<5; i++)
{
/* 观察每行的空格数量,补全循环条件 */
for( ? ; ? ; ? )
{
printf(" "); //输出空格
}
/* 观察每行*号的数量,补全循环条件 */
for( ? ; ? ; ? )
{
printf("*"); //每行输出的*号
}
printf("\n"); //每次循环换行
}
return 0;
}
本课程编程练习请使用电脑登录 www.imooc.com

提问者:慕粉0005048332 2016-11-27 14:50

个回答

  • 慕设计0744858
    2016-11-27 15:26:02

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

  • 慕设计0744858
    2016-11-27 15:22:51

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