c語言什麼情況下得負數

來源:魅力女性吧 2.57W
c語言什麼情況下得負數

出現負數,是因為奇數、偶數的和太大,超過了long(長整型)類型的最大值了。

個數是對的,0-151554545共有151554546個數,其中奇數偶數各有75777273個。

至於for不動了,是for循環進入無窮迴圈了,你的編譯器中int是2bytes,最大值為32768,當i加到32769的時候,就越界了,成為負數,所以i永遠不會大於你輸入的151554545這個數值,所以無窮迴圈。

這個問題有多種可能,不一而足。

算法有錯誤,最終計算結果是負數。輸出自然會是負數。

例如:

int a=1

int b=a-2

printf("b=%d",b)

//輸出結果:b=-1

超過變量類型的最大取值範圍,發生溢出

例如Turbo C裏int是16位,取值範圍-32768~32767。如果計算過程當中,數值超過32767,由於補碼的關係。結果就有可能是負數。這種情況,就需要使用取值範圍更大的數據類型。

例程:

#include<stdio.h>

void main(){

int a,b,ch

a=32767

b=a+1

printf("a=%d,b=%d",a,b)

ch=getch()

}   

//輸出結果:a=32767,b=-32768

熱門標籤