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

关于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;
}

请问那个子循环和孙循环的表达式分别是什么意思,看了半天没看懂为什么要这样写,那个大神讲解一下,谢谢

提问者:慕斯卡1730669 2016-12-15 04:26

个回答

  • 任仕雨
    2016-12-15 12:22:45
    已采纳

    这题是要打印二维星号的问题吧,第一第二子循环是基于题目的规律判断,看这条代码指的是每行空格数量与行数(i)存在恒久不变的规律,当执行到第i行,则空格量为5-i;*号的量也是这种思路(*号的数量和所处i行的关系)(啰嗦一点。。。第一行就是2*1-1(1)个,第二行就是2*2-1(3)个,第三行就是2*3-1(5)个,第四行。。。明白了吧·,好好努力,加油。



  • 慕慕2676281
    2016-12-15 12:33:19

    i=1,i<5是总共输出5行,子循环是判断每行有多少个空格,这个循环的条件我不是很理解,第一行3个,第2行2个,为什么会是那样,不是很懂,孙循环是判断*号个数,第一行1个,第2行3个,第3行5个,按数学方法来看,第i行就有2i-1个

  • 大千纷繁世界
    2016-12-15 12:24:11

    从程序看有3个循环结构一个大循环包含两个小循环,大的为i两个小的分别为j和k i为行数, j在第i所表示的行中输出空格,输出空格结束后用k来补*号,第一行4空格,1*
    第二行3空格,2*
    第三行2空格,3*依次类推。