中易网

int x=10; do x--; while(--x); printf("%d\n",x--); 答案为0. 求详解

答案:5  悬赏:10  
解决时间 2021-01-10 02:00
int x=10; do x--; while(--x); printf("%d\n",x--); 答案为0. 求详解
最佳答案
只有当表达式--x值为0(假)时,才会退出循环体,所以退出循环后x值为0,又因为x--的值为x自减前的值,所以输出0
全部回答
# include <stdio.h>
int main(){
int x=10; do x--; while(--x);//x等于0时退出循环
printf("%d\n",x--); //先输出x=0,然后x-1
printf("%d\n",x);//输出减去1后的值
return 0;
}

追问:这题是减1 还是减2
追答:/*减 2 */
# include <stdio.h>
int main(){
int x=10;
do
{
x--;//循环体中减去1
printf("x=%d\n",x);
}
while(--x);//判断条件中,先减去1,再判断
//x=1时,减去1 为0,退出循环
printf("\n");
return 0;
}
/*
----
x=9
x=7
x=5
x=3
x=1
--
*/
追问:最后是--x=1,向上反的话x--不就是-1了
追答:是啊x就是-1
追问:答案是0哎
当--x 为真的时候 x--.
最后一次循环时候 while(--x)x 为1 自减1 变成0 跳出循环
printf ("%d\n",x--)//由于 --后置 ; 则先做计算在自减1 .
do... whlie无论条件是否满足都会先执行一次循环体
第一次x=9一直执行到x=0时条件不满足停止
要注意——在前很——在后的区别——在前是先运算然后再执行——在后是先运用在计算
先执行x--,再执行--x,然后判断是否继续。
相当于每减 2 ,判断一次,所以第一次循环是8再判断,第二次x=6判断,……,x=4判断,x=2,x=0时判断跳出循环,打印输出0.
追问:怎么是每减2呢
追答:因为先执行x--,再执行--x,就相当于减了2再进行的判断
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
电容串联电路特点?
卫东区平顶山辣美滋骨汤麻辣烫这个地址在什么
考高考 钢琴得弹五升、五降内音阶、琶音、和
混合矩阵dvi进能sdi出吗
05款雪铁龙爱丽舍有obd接口吗?
十二句的古诗词,每句七个字。 拜托了。
杨幂cosplay王者荣耀的装扮,你能猜出是谁吗
大学扩招的影响
宝妈拉肚子会过奶给小孩子吗
三相电动机可以长期低压运行吗
有人了解刚上市的菱智M5L吗?这车好吗?
老梗是什么意思
64的win7怎么有X86这个文件夹
宝宝快2岁了,最近很爱玩手机,怎么办
请问什么叫 认缴资本 尽量说得通俗易懂一点
推荐资讯
叶集改革发展试验区审计局地址在哪,我要去那
这张图有没有1980x1080这么大尺寸的,跪
无论你遇见谁, 他都是在你生命中该出现的人
易海燕的基本信息
今天同事给出了个对联~世事无常顿生悟,花开
马蜂喜欢在什么样的地方打窝
德语形容词最高级,比如gut的最高级形式,为
仙桃亿鑫宾馆地址在哪,我要去那里办事
基基督教和其他宗教有什么不同
打本啥意思
红梅照相馆地址在什么地方,我要处理点事
为什么要组建团队
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?