求高手分析一下下面这个程序的运行结果为什么是1,-2

#include <stdio.h>void main(){int x=3;do{printf("%3d",x-=2);}while(!(--x));}
2025-02-25 02:03:39
推荐回答(2个)
回答1:

while(!(--x))这个里面的!(--x)是个布尔型,0为假,非0为真。
!(--x)这个为真时,即是--x这个为假的时候。
所以循环循环停止时--x!=0;

回答2:

这个吗简单 首先是DO--WHILE循环 是先循环循环体
刚开始X=3循环一次循环体得X=3-2=1
此时X=1 再次--X X=0 WHILE条件成立
执行循环体得 x=-2
就是这样结果是1 -2