c语言中的一道题目 main() {int n=9; while(n>=6) {n--;printf("%d",n--);}} 答案是86,求高人解释

如题所述

第一轮:n=9,while判断为1,首先执行n--,n变为8;
printf("%d",n--):首先打印8,然后将n-1,n=7;
第二轮:n=7,while判断为1,首先对n-1,n=6;
与第一轮相同,打印出6,然后将n-1,转变为5.
然后下一轮的时候while判断为FALSE,程序执行完毕。

解释得够详细了吧?记得给分啊!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-01
步骤分解:
int n=9; //此时n=9
while(n>=6) //循环判断,9>=6,条件为真,进入循环
n--; //此时n=8
printf("%d",n--); //n--表示先使用,再自减。先打印8,再自减为7.
while(n>=6) //循环判断,7>=6,条件为真,进入循环
n--; //此时n=6
printf("%d",n--); //先打印6,再自减为5
while(n>=6) //循环判断,5>=6,条件为假,退出循环

最后打印"86"
第2个回答  2013-03-01
①n=9,进入while语句,执行n--,此时n=8;printf("%d",n--)是先输出n再执行n--,所以这里输出8,此时n=7
②n=7,进入while语句,执行n--,此时n=6;printf("%d",n--)输出6,再执行n--,此时n=5
③n=5,不符合while(n>=6)的条件,程序执行结束
相似回答