代碼哪里錯了
哪位高手能告訴我 為什么我的計算是-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("計算結(jié)果為%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("計算結(jié)果為%d\n",r); ? ?
? ? return 0;
?}
2016-12-28
舉報
2016-12-28
從你的代碼可以看到,你得到的結(jié)果r是double型(8字節(jié))的,但是你在輸出的時候把他強(qiáng)制輸出為%d(整數(shù))(一般為2字節(jié),在vc上是4字節(jié)),但是高字節(jié)是無法轉(zhuǎn)向低字節(jié)的,所以結(jié)果必然錯誤。
我的建議是:你的r值加起來也不大,完全沒有必要使用double型,你可以把r改為int型,你可以試試。