www.fltk.net > #inCluDE<stuDio.h> voiD mAin() { int x=10,y=...

#inCluDE<stuDio.h> voiD mAin() { int x=10,y=...

if后需要执行的内容用大括号包裹起来,看代码你应该是要交换X,Y,把 #include<stdio.h> void main() { int x=10,y=20,t; if(x==y) { t=x; x=y; y=t; } printf("%d %d\n",x,y); }

if(x>y) t=x; 这一句是不会执行的;但后面的两句:x=y;y=t;不在if的范围之内会执行,所有最终的结果是20 0 0 要不执行x=y;y=t;的话if判断应该这样写:if(x>y) {t=x;x=y;y=t;}

应该是10 10 9 1吧 先判断x>8成立 执行循环 输出 x,y的值此时x, y都为初始值10 所以输出10 10,执行一次循环后 执行语句y=++i;此时,y变为1;而x执行过x--后变为9 所以输出9 1

++x 代表先 让x加1 在运算 x-- 是先进行x 运算再 减1 也就是它参与的计算都结束了, 才会减.

你的变量a与b没有定义 b*=2也有问题,与y无关,代码改成如下:#include <stdio.h> int main() { int a,b; int x = 10; int y = 10; a = x*2; b =y*=2; printf("x=%d\n", a); printf("y=%d\n", b); return 0; }

xy都是整形,C/C++表达式的值的类型和参与运算的值的类型保持一致,而浮点数据转换为整形数据使用的方法是直接抛弃小数部分,所以3.3的小数部分被舍弃了,于是结果就是3

#include void main () { int x=10,y=10,i; for (i=0;x>8;y=++i) //这个循环执行2次. printf ("%d%d",x--,y); } //第一次循环,循环前,x=10.,3444y=10 x>8成立

10 10 9 10 x--,x,--y,y这四个参数对于printf来说是同时调用的,不存在先后关系 x-- 是先调用x,然后再做减法 就是10 x 的值就是10--y 是先做减法 再调用 就是9 y 的值就是10

#include &lt;stdio.h&gt; void main(){ int y=10; while(y--);//这里是一下做循环,while(y--)是先判断y的值是不是真的,再减减的当y=0的时候是假,退出循环,然后再减1,所以是-1了 printf("y=%d\n",y); }

相关搜索:

网站地图

All rights reserved Powered by www.fltk.net

copyright ©right 2010-2021。
www.fltk.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com