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

每行空格数量

你们好厉害的样子,为啥第一行不是三个空格?求详解

提问者:慕粉4236818 2016-10-22 09:06

个回答

  • JustWannaHugU
    2016-10-22 17:09:09

    http://img.mukewang.com/580b2ca70001703403820297.jpg

    你确定仔细看了?

  • JustWannaHugU
    2016-10-22 14:02:41

    题目确实没有明确说明“必须打印4个空格”

    但通过观察图形,图案的最后一行*号左侧有1个空格对吧?

    而通过第一行*号与第四行*号对应的位置进行比对可以看出,第一行*左侧有三个空位才能与第四行平齐

    因此整个图形,第一行必须打印4个空格

  • JustWannaHugU
    2016-10-22 10:17:25

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

    子循环需要全部循环完才能跳出子循环

    第一行的话:

    i赋值给了j,j<5,就一直循环,i=1,so j=i=1,j<5.空格,j++,

    j=2,j<5,空格,j++

    .......循环打印空格,

    一直直到j=5不满足条件为止

    至此共打出了4个空格


    ps:如果明白了谢谢采纳~