#include <stdio.h> main() { int x=0; while(x++<=5) ; printf(“%d, ”,x); printf(“%d\n”,x); }

为什么输出7,7呢

wile(x++<=5) 是先比较 再++;
第一遍 x=0 while(x++<=5)====>0 < 5 继续循环 x=1;
第二遍 x=1 while(x++<=5)====>1 < 5 继续循环 x=2;
第三遍 x=2 while(x++<=5)====>2 < 5 继续循环 x=3;
第四遍 x=3 while(x++<=5)====>3 < 5 继续循环 x=4;
第五遍 x=4 while(x++<=5)====>4 < 5 继续循环 x=5;
第六遍 x=5 while(x++<=5)====>5 = 5 继续循环 x=6;
第七遍 x=0 while(x++<=5)====>6 > 5 结束循环 x=7;
所以输出的是 7,7
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-08
dyrdgggggggggg

...<stdio.h> main() { int x=0; while(x++<=5) ; printf(“%d...
第六遍 x=5 while(x++<=5)===>5 = 5 继续循环 x=6;第七遍 x=0 while(x++<=5)===>6 > 5 结束循环 x=7;所以输出的是 7,7

#include <stdio.h> main() { int x; scanf("%d",&x); if(x++>5) p...
if(x++ > 5) 在这里 x已经被++了一次了,所以输出一定是加一的结果。还有 在比较的时候 这样的比较是用x ++之前的值比较的 也就是你输入什么 就用什么和5比 还有后面的两个printf 打印有什么区别?如果说有区别的话 是6 输出7 的时候没有换行……3输4的时候 换了一行……...

#include<stdio.h> void main() { int x=0,y=5,z=3; while(z-->0&&++...
z,最后是-1,当z>0不成立时,循环终止,但是z还要再减去1。这个循环里,z--是先将z与0作比较,再进行自减运算的。

#include<stdio.h> main() { int x; scanf("%d",&x); if(x--<5) pr...
你输入的数是什么 假如是5 那么首先先判断第一个 x不是小于5 所以执行else 由于先执行了前一段的判断了 所以执行完之后 x自己就-- 所以是4 而且在else的时候 x++是先输出后自加的 所以答案不变 还是4

#include <stdio.h> int main(){ int x=0,y=0; while(x<15) y++,x+...
include <stdio.h> int main(){ int x=0,y=0;while(x<15){ y++;x+=++y;} printf("%d,%d",x,y);} \/\/++y输出y值加好以后的值 \/\/y++; x+=++y \/\/y=1 x=2 y=2 \/\/y=3 x=6 y=4 \/\/y=5 x=12 y=6 \/\/y=7 x=20(x>15 所以跳出循环) y=8 ...

!x++是怎么个运算顺序
++在变量后面,先使用变量后自增 !x++ 等价于 !x; x=x+1;所以 !x++; 的结果是 1, 输出的x也是1 include<stdio.h> int main(){ int x = 0;printf( "!x++ : %d,x:%d\\n", !x++, x);return 0;} 结果:

c语言里面x=x++的问题
结果就是等于零锕!不是先算y=x,的而是先算x++,在把x++的结果赋值给y,因为c语言是从右往左算的,加加减减有点绕人,如果你把加加移到x的左边像这样,++x,这结果才等于1。不懂的在追问。

#include <stdio.h> int main(void) { int x,y; printf("please inp...
if(条件句)条件句:> < == 条件句的组合:&& 是‘和’得意思 || 是 ‘或者’ 的意思 != 是‘不等于”的意思

#include <stdio.h> int main(){ int x=0,y=0; while(x<15) y++,x+...
主要看这一行 while(x<15) y++,x+=++y;++的优先级要高于+=的优先级 因此x+=++y可等价于:x=x+(++y).即将++y与x原来值的和重新赋给x.运算的过程为: x y 2 2 6 4 12 6 20 8 这样回答能理解吗?

c语言#include <stdio.h> main() { int x=010, y=10; printf("%d,%d\\...
(二)已知 x 的值为 2, y 的值为0 则 y=x++; 的意思是 先 y=x; (此后x的值为2,y的值为2)后 x=x+1; (此后x的值为3,y的值为2)--x 与 x-- 也是一样的道理 010是八进制数,它的十进制数是8 x的值为8,所以输出 ++x 的值为9 ...

相似回答