问一道(C语言)考题,求详解

#include<stdio.h>
int main()
{
int x=3;
do
{
printf("%3d",x-=2);
}while(--x);
return 0;
}
输出为什么是1?解释一下程序呗

这个考的是循环退出条件,及--x,和x--的区别。
do
{
printf("%3d",x-=2);
}while(--x);
do 。。。while循环是先执行循环体,再做判断是否继续循环,
所以,第一次直接进入循环体,执行:
printf("%3d",x-=2);
x-=2等价于x=x-2,算出x=1,
并输出1;
接下来执行循环体的while(--x),
即先x减1(x=0),再判断x是否大于0,大于0则继续循环输出printf("%3d",x-=2);
此时x不满足循环条件,故循环结束。
所以,只输出1.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-28
很简单,x-=2, 等同于x=x-2
相似回答