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

关于空格为什么是这样子的?for( j=i;j<5;j++ )

/* 观察每行的空格数量,补全循环条件 */
        for( j=i;j<5;j++  ) 


提问者:qq_终极理论之梦_0 2015-07-21 13:42

个回答

  • 凌乱的玖肆
    2015-07-23 11:30:19

    直接j<4每行还能少输出一个空格

  • qq_终极理论之梦_0
    2015-07-21 17:57:45

    懂了,讲的很详细,太谢谢了!

  • 寒江北去
    2015-07-21 17:16:24

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

    1.i=1时:

    首先 for(i=1; i<5; i++)开始循环,最起始i=1,

    然后执行到for(    j=i ;  j<5 ;  j++ ),

    也就是说 for(    j=1 ;  j<5 ;  j++ ),j在循环中的所有取值为1,2,3,4,共计4次,故输出4个空格

    然后执行到for( k=0 ; k<2*i-1 ;  k++) k的所有取值为0,共计1次,故输出一个*

    2.i=2时

    for(i=1; i<5; i++)开始循环,最起始i=2

    然后执行到for(    j=i ;  j<5 ;  j++ ),

    也就是说 for(    j=2;  j<5 ;  j++ ),j在循环中的所有取值为2,3,4,共计3次,故输出3个空格

    3.以此类推

    i=3 输出2个空格

    i=4 输出1个空格

    i=5 此时跳出了循环