int x=10; do x--; while(--x); printf("%d\n",x--); 答案为0. 求详解
答案:5 悬赏:10
解决时间 2021-01-10 02:00
- 提问者网友:藍了天白赴美
- 2021-01-09 14:45
int x=10; do x--; while(--x); printf("%d\n",x--); 答案为0. 求详解
最佳答案
- 二级知识专家网友:西风乍起
- 2021-01-09 15:05
只有当表达式--x值为0(假)时,才会退出循环体,所以退出循环后x值为0,又因为x--的值为x自减前的值,所以输出0
全部回答
- 1楼网友:不甚了了
- 2021-01-09 17:45
# 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哎
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哎
- 2楼网友:怀裏藏嬌
- 2021-01-09 16:34
当--x 为真的时候 x--.
最后一次循环时候 while(--x)x 为1 自减1 变成0 跳出循环
printf ("%d\n",x--)//由于 --后置 ; 则先做计算在自减1 .
最后一次循环时候 while(--x)x 为1 自减1 变成0 跳出循环
printf ("%d\n",x--)//由于 --后置 ; 则先做计算在自减1 .
- 3楼网友:神鬼未生
- 2021-01-09 16:17
do... whlie无论条件是否满足都会先执行一次循环体
第一次x=9一直执行到x=0时条件不满足停止
要注意——在前很——在后的区别——在前是先运算然后再执行——在后是先运用在计算
第一次x=9一直执行到x=0时条件不满足停止
要注意——在前很——在后的区别——在前是先运算然后再执行——在后是先运用在计算
- 4楼网友:轮獄道
- 2021-01-09 15:32
先执行x--,再执行--x,然后判断是否继续。
相当于每减 2 ,判断一次,所以第一次循环是8再判断,第二次x=6判断,……,x=4判断,x=2,x=0时判断跳出循环,打印输出0.
追问:怎么是每减2呢
追答:因为先执行x--,再执行--x,就相当于减了2再进行的判断
相当于每减 2 ,判断一次,所以第一次循环是8再判断,第二次x=6判断,……,x=4判断,x=2,x=0时判断跳出循环,打印输出0.
追问:怎么是每减2呢
追答:因为先执行x--,再执行--x,就相当于减了2再进行的判断
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯