清凉国师华严疏钞:有关c语言的问题

来源:百度文库 编辑:中科新闻网 时间:2024/05/01 11:46:41
main()
{
float i=2.5;
printf("%d",i);
}

为什么结果是0,而不是2;

main()
{
int i=1;
int s=0;
i++;
s+=i;
printf("%d",s);
}

为什么结果是2,不是1。

谢谢了。

第二个是因为执行了I++,虽然说i++使用后再是I+1,但是在这里我觉得当执行s+=i的时候,i已经是2了

至于第一个,我也不清楚。可能是TC下不识别这样的吧,
如果是先float i,再int s。另s=i;再输出s。那么s=2

楼下的,只有亲自动手做过才敢说,怎敢乱说呢 ?

因为i+0=1;i+1=(2)因为每+一次i的值就会自动更改

第一个如果定义了i是单精度型,那输出时应该写成("%f",i),这时输出就是2.5了!!!!!!!!!!
第二个是因为先执行i++,后执行s+=i,所以会是2。
记住!程序的执行是一步一步运行的!
这才是正确答案,不知道不要乱说!!!!!!!!