代碼哪里錯了
哪位高手能告訴我 為什么我的計算是-379600392?
#include<stdio.h>
int main()?
{
?? ?int a=1,b=2,c=3,d=4,e=5;
?? ?double r=a+b+c+d+e; ??
? ? printf("計算結果為%d\n",r); ? ?
? ? return 0;
?}
哪位高手能告訴我 為什么我的計算是-379600392?
#include<stdio.h>
int main()?
{
?? ?int a=1,b=2,c=3,d=4,e=5;
?? ?double r=a+b+c+d+e; ??
? ? printf("計算結果為%d\n",r); ? ?
? ? return 0;
?}
2016-12-28
舉報
2016-12-28
從你的代碼可以看到,你得到的結果r是double型(8字節)的,但是你在輸出的時候把他強制輸出為%d(整數)(一般為2字節,在vc上是4字節),但是高字節是無法轉向低字節的,所以結果必然錯誤。
我的建議是:你的r值加起來也不大,完全沒有必要使用double型,你可以把r改為int型,你可以試試。