为了账号安全,请及时绑定邮箱和手机立即绑定

空格递减,为什么在编写时,要“j++”

空格是递减的为什么在表达式里要写成“j++”。为什么不能写成for(j=4;j>=1;j--)

正在回答

3 回答

   for(i=1; i<5; i++)      //此循环用i控制循环的行输出

    {

        for(j=i;j<5-i;j++)    //此循环用j控制没一行的空格输出,重点:1.能够表示出是在哪一行,是第一行,还是第                                             //二行所以必须找出行数与每一行的关系,即j和i的关系,2.能够正确输出即可。后面的k                                           //循环同样要找出k和i的关系。如果这里采用for(j=4;j>=1;j--),则空格的输出完全就                                            //独立于行之外了

        {

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

        }

        /* 观察每行*号的数量,补全循环条件 */

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

        {

            printf("*");   //每行输出的*号

        }

        printf("\n");     //每次循环换行

    }

    return 0;


0 回复 有任何疑惑可以回复我~
#1

再建华夏 提问者

我懂了!在以j为变量的子循环中,j=i是要确定父子循环的关系,j<5的意思是每行的空格都要输出5次以下,j++就是递增。观全局,空格随着行数增加而逐渐减少,是主循环下的减少,但是在子循环里空格是在循环加的。我一开始觉得应该是j--这个想法是搞错了逻辑循序。 i=1时,因为(j=i,j=1,j<5,j++)得出:1,2,3,4空格(实为4个); i=2时,因为(j=i,j=2,j<5,j++)得出:2,3,4空格(实为3个); i=3时,因为(j=i,j=3,j<5,j++)得出:3,4空格(实为2个); i=4时,因为(j=i,j=4,j<5,j++)得出:4空格(实为1个);
2017-09-18 回复 有任何疑惑可以回复我~
#2

再建华夏 提问者

非常感谢!
2017-09-18 回复 有任何疑惑可以回复我~

你那样   写   每行都打印4个空格   而程序中是第一行打印3个空格   第二行打印2个

0 回复 有任何疑惑可以回复我~

因为它还会根据行数的变化打印出空格数也随之而变,仔细分析它的逻辑

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

空格递减,为什么在编写时,要“j++”

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信