為什么int類型里a+b-c+d=0.000000
#include <stdio.h>
int main()
{
? ? int a,b,c,d;
? ? int result;
? ? a = 1;
? ? b = 2;
? ? c = 3;
? ? d = 4;
? ? result = a + b - c ?+d; ? ?//在這里體驗(yàn)哦~
? ? printf("%f\n", result);
? ? return 0;
}
#include <stdio.h>
int main()
{
? ? int a,b,c,d;
? ? int result;
? ? a = 1;
? ? b = 2;
? ? c = 3;
? ? d = 4;
? ? result = a + b - c ?+d; ? ?//在這里體驗(yàn)哦~
? ? printf("%f\n", result);
? ? return 0;
}
2015-06-24
舉報(bào)
2015-07-20
謝謝啦
2015-06-24
首先,result的結(jié)果肯定是4。
然后問(wèn)題出現(xiàn)在printf里面,result是int類型的,在printf里使用%f輸出,但是printf是不會(huì)做類型轉(zhuǎn)換的,所以這里的結(jié)果是不可預(yù)知的,至于為什么顯示0.000000也不太清楚,做一個(gè)強(qiáng)制類型轉(zhuǎn)換就OK了:printf("%f\n", (float)result);