int x=3; do printf("%3d",--x); while(!x) 请详细说明,谢谢!

发布网友 发布时间:2024-09-26 17:47

我来回答

4个回答

热心网友 时间:2024-09-29 14:51

定义整型变量x并赋值为3,然后做do循环,其中“%3d"是输出格式控制,输出占3位靠右对齐,--x的意思相当于x=x-1;其中--x表达式的值跟x的值相等就是减过1后的值(如果是x--运行结果就不一样了,x--表达的值是x未减1之前的值,而x的值变为减1后的值)。while(!x)中!x是循环结束条件,当x=0时跳出,所以输出结果应该是
2
1
0

热心网友 时间:2024-09-29 14:58

首先x = 3
printf这句先计算--x (先减1)为2,然后输出格式为%3d,表示占3位,左边补0, 所以输出 __2 (__表示两个0看不见的);
然后while(!x) ,首先!x 也就是!2 == 0 ,while(0)条件为0 即False,退出循环。
所以最后输出2,不过它前面留两个数的位置 __2(__表示两个0看不见) .

热心网友 时间:2024-09-29 14:51

伙计。。。你的有语法错误啊。。。

热心网友 时间:2024-09-29 14:56

循环体执行一次,输出2
int x=3;
do
printf("%3d",--x);
while(!x);

while(!x)写清楚点就是 while((!x)!=0) 也就是while(x==0), 而printf("%3d",--x);执行完毕后x==2,2!=0,所以循环结束

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com