為什么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; ? ?//在這里體驗哦~
? ? 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; ? ?//在這里體驗哦~
? ? printf("%f\n", result);
? ? return 0;
}
2015-06-24
舉報
2015-07-20
謝謝啦
2015-06-24
首先,result的結果肯定是4。
然后問題出現在printf里面,result是int類型的,在printf里使用%f輸出,但是printf是不會做類型轉換的,所以這里的結果是不可預知的,至于為什么顯示0.000000也不太清楚,做一個強制類型轉換就OK了:printf("%f\n", (float)result);