1樓:匿名使用者
int是8位的吧,1500*350超過範圍了,資料型別換成long int
2樓:
不是說過了嘛?
main()
就可以了,因為1500*350的結果太大了,超出了int的範圍,所以應定義成long,而long在輸出時的格式為%ld
是結果不行麼?我在公司上班,不能上qq的,應該對的呀,如果不對,那我也沒有辦法了,不好意思
3樓:
#include
void mian(void)
計算結果確實是溢位了,因為a跟b都是int型的,所以計算結果還是int型的,要必須強制轉換成long型才能賦值給c。。。。這樣改了之後應該是行的。。。你也可以把a跟b轉換成long型之後再進行計算。。。
c = (long)a * (long)b;
4樓:匿名使用者
int 是2個位元組 16位 最大為 65535
而 1500*350 大於 65535 溢位
5樓:鈴雅雅
你這樣寫數不能太大,所以有錯誤,把它改成下面的就可以了
#include
main()
6樓:清風荷影
應該沒多,我試行,建議改一下,改成long,若是別人輸入大數就放不下了
7樓:蝶破焰澈
汗!不是說過嘛!可以執行的!真是的!理論有時需要實踐的嘛了
簡單的c語言問題,一個簡單的C語言問題
在c語言中a b c這種寫法是不對的 應該寫成a b b c 在你的演算法中a b c的值不確定 當a小於b時 if a b c 就會變成if 0 c 所以結果會發生錯誤 好吧 看的我頭大了,要不我給你寫一個 我上次一個就用了個三目運算子就算出來了!你這個程式就是輸出最大數 最小數 平均數 就用了8...
關於c語言的簡單問題,一個關於c語言的簡單問題
scanf f,radius 改為scanf f radius printf f n,area 改為printf f n area 恩 你的錯誤就是printf和scanf函式的格式不對啊其它的都很好啊 把書本上的格式用程式來除錯下 這樣記憶更深刻 scanf f radius printf f n...
C語言簡單的問題
陣列名相當於指向陣列首元素的一個常指標,但指標並不等於陣列.把陣列名做常指標用時,不能改變它的指向,也就是說不能對陣列名賦值,只能用陣列偏移來訪問陣列元素,如定義一個陣列int a 則 a就是0,a 1 就是1等等,這個訪問過程中並沒有改變a的值 即陣列首元素的地址 而是用a偏移一定的量來訪問陣列元...