100不能用int表示嗎,我的小程式

2022-07-17 18:48:02 字數 1560 閱讀 6035

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的窗戶 校園內是指出我錯誤的指路明燈 校容園是讓我展現自我風采的舞臺。校園,讓我變得自信了 校園,讓我變得有知識了 校園,讓我學會體貼人了 校園,讓我學會失敗後要努力了。校園,我的舞臺。我要在這屬於我的舞臺上,展現有風采...