永发信息网

程序问题,大家帮帮我哈,我想不通

答案:4  悬赏:10  手机版
解决时间 2021-04-30 10:34
  • 提问者网友:咪咪
  • 2021-04-30 05:08

for循环里面的循环条件如果有两个,期中一个成立而另一个成立的话,怎么办?

比如#include<stdio.h>
void main()
{
int x,y;
for(x=30,y=0;x>=10,y<20;x--,y++)
x/=2,y+=2;
printf("x=%d,y=%d\n",x,y);
}
这样的一个

最佳答案
  • 五星知识达人网友:思契十里
  • 2021-04-30 05:37
明显你这题做错了。
x>=10,y<20 等价于x>=10||y<20 即一个为真就能执行循环,两个为假才能结束循环
第一次循环x=30,y=0 x=x/2=15,y=y+2=2,x自减后=14,y自加后=3;以此类推,直到x=-1(因为定义的x为整型,所以x=x/2=0,结果也为整型,0再自减后还为-1),y=21时,x、y都为假时结束循环。

这题应改为 x>=10&&y<20 ,即两个为真才能执行循环,一个为假就结束循环
循环至x=14,y=7时 x=x/2=3,y=y+2=5,x自减后=6,y自加后=6;再来判断是否符合循环条件,结果是不满足,所以跳出循环,输出x=6,y=6
全部回答
  • 1楼网友:蓝房子
  • 2021-04-30 08:18

这运行过程中的x,y每次循环值

  • 2楼网友:青尢
  • 2021-04-30 07:41

x=15,y=2

这程序只能循环2次。有一个为flase就退出循环了。打印结果。

  • 3楼网友:逃夭
  • 2021-04-30 06:37

你把程序改一下。

就能看到运行的全过程了

#include <stdio.h> void main() { int x,y; for(x=30,y=0;x>=10,y<20;x--,y++) {x/=2,y+=2; printf("x=%d,y=%d\n",x,y);} printf("x=%d,y=%d\n",x,y);}

这样你运行出来就可以看了,你看看再想一下。。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯