1樓:
估計是你把int型的不能直接賦給long int型的了..
你可以把i,或者j 其中一個修改為long int型的,應該就可以看到結果還是正常的了...
2樓:匿名使用者
我用vc編譯結果是100000
可能是你的10*i*j有問題
你可以想一下
在執行10*i*j的時候 ,i,j都是int的,那他們的計算結果是
什麼型別呢?如果是int型的,那計算出來的結果肯定放不下,
自然轉成long型也是有問題的!
[解決方法]
就是讓編譯器知道 在執行10*i*j的時候 我的結果是long
的,這樣就可以解決問題!
所以首先會想到:10*(long)i*(long )j的方式,因為
有long型加入計算,自然結果就是long型的。
更簡單的形式就是(long)10*i*j;
方案:k=10*i*j 改成 k=(long)10*i*j
3樓:匿名使用者
你這裡的結果是益出了,
k=10*i*j;
編譯器是這樣處理的,10*i的結果放在臨時積存器裡,這裡的臨時積存器是int型別的.所以結果益出了,然後又和j想乘,所以結果是錯誤的.
最好是分開寫
k=10*i
k=k*j
這樣寫絕對正確
4樓:在岐山滑冰的獼猴桃
#include
main()
5樓:匿名使用者
問題太簡單的...有些編譯器如vc++ (int,是4位,) 而turbo c(int ,是2位.)超過資料顯示的範圍,就會顯示不正常(有規律的)。。。
6樓:_鈊_煩_薏亂
#include
void main()
編譯器問題。我用visual c++ 2005編譯正常。
100也在int的允許範圍內。
7樓:匿名使用者
100當然能用int
不是這個原因是語法的問題
看看整型量與長整型量之間的轉換關係
8樓:匿名使用者
100怎麼可能不可以呢?c當中,是精確度高的可以向精確度低的轉換不會丟失資料,相反不行,你要麼把long k改成int k 或者把上面的改成long ok~
9樓:匿名使用者
你用的是turbo c的編譯器吧,這個編譯器中的int是16位的,表示的範圍是-32768~+32767。
i=j=100;
k=10*i*j;
在這個表示式中,10*i*j的結果是100000,超過了32767,由於i與j都是int型別的,所以10*i*j的結果會溢位,得到一個負數。雖然long是32位的,但是結果已經是負數了,所以最後結果也是負數。如果你在10前面加一個(long)強轉,那麼i和j也會被自動強轉為long,結果就不會溢位了。
10樓:匿名使用者
i,j 用逗號隔開啊.
你能用不同的方式表示下面數嗎你能用不同的方式表示下面數嗎
這裡用6種方式表示4853000。1 十進 制 4853000 4.853 10 6 4853000 4 10 6 8 10 5 5 10 4 3 10 3 4853000 2 2 2 5 5 5 23 211 2 二進位制 4853000 10010100000110100001000 3 八進位...
為什麼我的iphonex siri不能用
蘋果x如果設定好siri 還沒反應,開啟設定通用輔助功能找到siri,開啟 鍵入以使用siri iphonex怎麼撥出siri 1.撥出iphone 小白點,也就是assistive touch,長按鎖定螢幕。2,升級到ios11的使用者可能沒發現,現在設定裡面新增了關機的選項,而在ios11以下的...
寫我的舞臺小練筆,寫我的舞臺小練筆100字
我的舞臺 校園bai是給予我知 du識的搖籃 校園是教導我做zhi人道理 dao的窗戶 校園內是指出我錯誤的指路明燈 校容園是讓我展現自我風采的舞臺。校園,讓我變得自信了 校園,讓我變得有知識了 校園,讓我學會體貼人了 校園,讓我學會失敗後要努力了。校園,我的舞臺。我要在這屬於我的舞臺上,展現有風采...