按答案输出的话 为什么第一行会输出4个空格 不应该是一个么

来源:4-12 循环结构之多重循环

慕运维1786633

2016-05-03 16:20

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


写回答 关注

3回答

  • 慕容6328150
    2016-05-04 01:13:09
    已采纳

    for(j=i;j<5   ;  j++  )  

            {

                printf(" ");    //输出空格

            }

    执行这一段的时候,一开始 j 赋值为 i 的值,而之后就会根据他的条件 j<5 来判断是否继续循环,而不是再根据一开始的赋值来判断是否循环。你要的应该结果应该是把

    for(j=i;j<5   ;  j++  )  里面的j<5 改下就好了。。



    慕运维178...

    非常感谢!

    2016-05-04 13:09:07

    共 1 条回复 >

  • 流蝶香lol
    2016-05-03 18:49:50

    应该是根据最后一行来看吧,用第一行的*对齐最后一行中间那个最后一行中间那个*到最后一行第一个*占了n个字节就第一行*有n个空格。

  • 不是王先生
    2016-05-03 17:23:23

     for(j=i;j<5   ;  j++  )  

            {

                printf(" ");    //输出空格

            }

    j=i=1;j<5;j++   输出5-1个空格

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926020 学习 · 20793 问题

查看课程

相似问题