cc123hh 发表于 2020-2-20 12:16:16

for语句为什么循环?

#include <stdio.h>

int main()
{
        int xxs=9,h,a;
        a=9;
       
        h=(a+1)/2;
       
        for(h;h==0;h--)
        {
                for(xxs;xxs<=1;xxs--)
                        {
                               printf("*");
                        }
       
                printf("\n");
        }
        printf("%d\n",xxs);
        printf("%d\n",h);
        printf("%d",a);
}

为什么输出的还是9 5 9 没有换行 没有打印*

zltzlt 发表于 2020-2-20 12:17:55

h = (a + 1) / 2
   = (9 + 1) / 2
   = 10 / 2
   = 5

一开始 h 就为 5,而循环条件是 h == 0,明显不满足,所以不执行 for 循环,直接打印 9 5 9

cc123hh 发表于 2020-2-20 12:19:31

zltzlt 发表于 2020-2-20 12:17
h = (a + 1) / 2
   = (9 + 1) / 2
   = 10 / 2


第二个不是循环退出的条件吗{:10_277:}

zltzlt 发表于 2020-2-20 12:19:49

cc123hh 发表于 2020-2-20 12:19
第二个不是循环退出的条件吗

不是,你搞反了

cc123hh 发表于 2020-2-20 12:20:21

zltzlt 发表于 2020-2-20 12:19
不是,你搞反了

emmmmmmmmmm

quark 发表于 2020-2-20 13:01:22

代码中的错误是xxs<=1,应改为xxs>=1!你的方向搞反啦!!!
页: [1]
查看完整版本: for语句为什么循环?