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當成浮點數處理,那就是...