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

2021-03-03 22:26:36 字數 1290 閱讀 2082

1樓:it孤鶩

daan 是double 型別

你應該把%d 改成 %lf

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樓:無丹羿昭

我的感覺是,在你執行printf

這個過程中,輸出%d的時候,其實你的a的值已經出問題了,所以後面也會有錯。你可以試試看,把%d放到第二個輸出,你就會發現,第一個問題,後兩個出問題了。你可以改成這樣。

當你在執行第二個printf的時候,你的a的值就是為double型等於1.550000,然後再開始執行第二個printf

5樓:匿名使用者

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

6樓:囂張得很

把用float定義的變數全改成double定義,把用%f全改成%lf

在c語言裡要輸出一個負數的值!

7樓:

type(數的型別)number(你要輸出的數);

printf("% +d",number)例如int i=-617;

printf("% +d",i);

"+"號是輸出符號的

8樓:匿名使用者

#include

void main()

這樣啦呵呵輸出你要的 另一個類似哦

c語言輸出,c語言輸出

首先解釋為什麼是負值 因為溢位了 111111 111111 12345654321超出了int能表示的範圍 可能你要問 不是已經 lld了嗎 沒錯 lld是用於long long型別的,但只代表輸出的時候按照longlong的型別輸出,並不能影響後面引數的實際型別對於整型常數,c語言預設都是int...

c語言中printfd ,d會輸出什麼

d 在後面,第一步,該行 先呼叫d的值,完成該行 功能後。第二步再把d的值 1並存入d的地址。d,在前面,則兩步倒過來。會輸出變數d加上1的結果啊 d 輸出d d輸出 d c語言中printf裡的d 是什麼意思?printf中的 d的意思是輸出 個寬度的 d 整形 例子 a 5 b 6 printf...

一道C語言題,為什麼輸出的結果為負數

在你的switch語句最後都加一個default 看一下switch d switch u 如果出現error這行,說明你的fflush 沒有起作用,改正方法是在scanf 函式後,加一個getchar 如果沒有出現,把你的輸入資訊粘出來,即x d u都是什麼。再幫你看 這個問題有多種可能,不一而足...