为什么在第一个自循中 j=i 想不通

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

慕粉4286641

2016-11-04 16:27

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

写回答 关注

4回答

  • TXQ4305624
    2016-11-04 17:45:08
    已采纳

    j=i=1 从一开始,因为每行的空格数不相等 所以你不能使J=一个常量 所以和外循环结合起来;当然你可以使J= i+但是这样的话只有三行了  。它这其实的空格数不是像它说的每行空格数 = 最后一行*-当前行*/2

    而是 4 3 2 1 的分布 那个J<4 才是     每行空格数 = 最后一行*-当前行*/2

  • 慕粉4285392
    2016-11-07 22:20:01

    为了在每次循环中输出不一样数量的空格,如果j和i不关联在一起就无法做到,如下

    #include <stdio.h>

    int main()

    {

    int i, j, k;

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

    {

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

    {

    printf(" ");

    }

    for(k=0; k<2*i-1; k++)

    {

    printf("*");

    }

    printf("\n");

    }

    return 0;

     } 

    上面j=1就不能不会在每次循环中输出不一样的空格,只会输出同样数量的空格,所以需要是j=i(注意这两个区别很大),当然你也可以在后面的表达式2中限制它,如for(j=1; j<-1*i+6; j++),也可以有同上的效果。


  • 慕粉4203640
    2016-11-04 18:51:43

    这不是你自己设置的吗。。。

  • TXQ4305624
    2016-11-04 17:46:24

    j=i=1 从一开始,因为每行的空格数不相等 所以你不能使J=一个常量 所以和外循环结合起来;当然你可以使J= i+1但是这样的话只有三行了  。它这其实的空格数不是像它说的每行空格数 = 最后一行*-当前行*/2

    而是 4 3 2 1 的分布 那个J<4 才是     每行空格数 = 最后一行*-当前行*/2


    慕粉4285...

    其实使j=i+1也可以,有谁规定最后一行一定要有空格的,想必你是看了答案的吧……

    2016-11-07 22:08:31

    共 1 条回复 >

C语言入门

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

926021 学习 · 20793 问题

查看课程

相似问题