wwfl.net
当前位置:首页 >> #inCluDE<stDio.h> mAin() {int x=3,y= >>

#inCluDE<stDio.h> mAin() {int x=3,y=

死循环啊原因是应为1<=x<=2这句来着,当do了一步后,x=2,然后x一直减一,无论x为多少,因为1<=x这个表达式的结果只有0和1两种情况,它始终小于2,所以会一直循环如果要是改成while( x<=2 && x>=1 )这样的话就不会了

#include <stdio.h> main() { int x=3,y; do { y=x--; if (!y) { printf("*"); continue; } printf("#"); } while (1<=x<=2);//关键在于while的参数, 1<=x<=2,x为任何值都符合要求 //1<=x&&x<=2 ,这个才表示x在1和2范围内 //这跟小学所学的数学是有点差别的 }

因为语句t=++x||++y;在执行过程中,是先执行++x,然后看结果是否为0,因为++x的结果非0,所以语句为真,t被赋值为1,对于“||”运算符,就不执行“||”后面的++y了,所以y仍然是3.

x=3,y=3,(x++,y++)即为y++表达式的值,即先应用y再加1,表达式的值为3.满意就给分哦,亲.

首先,*pc的值赋予了x的值,而y=*pc++是先使用后相加,先把*pc的值付给y再自身相加,所以y=3

x<y不成立就是0 然后t=y<z不会再执行了,所以t=1; 0&& 的形式就是假了,只要出现这个就不会再执行后面的代码

最后输出的结果是0,还原一下程序就可以看的更清楚#include<stdio.h>int main(){ int x = 1, y = 0; if (!x){ y++; } else if (x == 0){ if (x) { y += 2; } else{ y += 3; } } printf("%d\n", y); return 0;}首先x=1,所以!x=0为假,所以往下执行,而x=1,所以else if的条件也不满足,所以最后y的值没有改变else先和他最近的if配对

#include int main() { double x,y=0; int i; double z,sum=0,w=0; for( i=1;i

你好! 因为if是一个判断语句,里面的表达值要么为真,要么为假,如果为真,则执行printf("*"); 如果为假,则执行printf("#"); ,从上面看x=y-4,是一个赋值语句,y=5,5-4=1,把1赋值给x,则表达式x=y-4,永远为真,则执行printf("*"); 你不信的话可以把x=y-5试试,它一定执行printf("#"); 解答完毕,谢谢!还有什么不明白的可以百度HI我!保证让你明白为止.

printf运行结果为 3 ,3 第二个%d 是z+2 为3 第一个%d 是 (++x ,y++)表示 先运行 ++x , x变为4 ,然后输出 y 的值为3 ,在运行 y++ ,y 为4;

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.wwfl.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com