為什麼總輸出很大的負數 c語言,為什麼總輸出一個很大的負數 C語言

時間 2021-05-07 20:00:38

1樓:匿名使用者

scanf ("i=%1f",&i);

修改為:

scanf ("i=%lf",&i);

printf("j=%1f",j);

修改為:

printf("j=%f",j);

不明白為什麼你要在前面加個1,難道是看書打**?書上是l.....

c語言問題,為什麼會輸出負數

2樓:匿名使用者

在你的switch語句最後都加一個default:看一下switch(d)

switch(u)

如果出現error這行,說明你的fflush()沒有起作用,改正方法是在scanf()函式後,加一個getchar();

如果沒有出現,把你的輸入資訊粘出來,即x d u都是什麼。再幫你看

3樓:匿名使用者

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

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

例如:int a=1;

int b=a-2;

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

//輸出結果:b=-1

超過變數型別的最大取值範圍,發生溢位。

例如turbo c裡int是16位,取值範圍-32768~32767。如果計算過程當中,數值超過32767,由於補碼的關係。結果就有可能是負數。

這種情況,就需要使用取值範圍更大的資料型別。

例程:#include

void main()

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

4樓:匿名使用者

溢位了,把資料型別定大一些

c語言迴圈結構為什麼輸出結果是,c語言迴圈結構為什麼輸出結果是

輸入 hello 之後有回車的吧,這個是 n 貢獻給other 輸入 12345 之後也有回車的,這個是 n 貢獻給other 輸入 之後,本身貢獻給other有4個 也有回車的,這個是 n 貢獻給other 輸入 之後也有回車的,但是因為首先 共享給other一個之後,while迴圈結束了,n 作...

C語言指標陣列求輸出結果,為什麼

陣列是順序儲存的,給你畫個記憶體圖 p賦予a 0 0 的地址後,p就是1了,p 2 是a陣列裡第3個元素,也就是3,p 4 是第5個,也就是5,m p p 2 p 4 是把它們3個乘起來乘起來是15 像這樣的二維陣列,用指標時把它看在一維的就可以了 答案是15 p是陣列起始位置指標,二維陣列在記憶體...

c語言吧。為什麼輸出會是1,而不是

printf 的引數並不會自動做型別轉換的。例子中格式串中有 f 編譯器就會當後邊的引數是個浮點數,它不做型別檢查。而把一個 int當成浮點數,因為兩種型別的儲存結構是完全不同的,後果就難以預料了,有可能程式崩潰,也可能正常執行,但得不到正確的結果。具體到樓主這個問題,把整數1當成浮點數處理,那就是...