c語言列印不出負數部分,c語言問題,為什麼會輸出負數

2021-05-28 23:30:15 字數 2216 閱讀 7612

1樓:空號一號

額…………我手裡的c手冊是這樣說的:

rand

語法:#include int rand( void );

功能:函式返回一個在零到rand_max之間的偽隨機整數。

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樓:孤0鴻

你定復義的型別不一致,前邊定義制是雙精度double的實數bai,後邊輸出用

du的是%f單精度zhi的浮點型,這兩個數精度差太dao多,在c++裡double輸出用的是%lf,你看看這裡是不是,要麼把前邊型別改成float,要麼後邊輸出改成%lf

8樓:匿名使用者

把所有的%f都改成%lf再試試 double需要long float格式

c語言 為什麼會輸出負數?

9樓:it孤鶩

daan 是double 型別

你應該把%d 改成 %lf

如圖c語言程式,這個定義一個無符號數a,但是賦了一個-66666的一個負數,但是為什麼列印輸出也是負數?

10樓:不可以語冰

你好是這樣子的你是以無符號存放的沒錯

但是輸出無符號的格式是%u

%d是有符號整數輸出的格式

希望能幫助到你

11樓:金色潛鳥

%d 格式

bai 輸出, 就是把 數值du 轉換 為 有符號數 輸出zhi。

unsigned int a = -66666; 內部是dao 0xfffefb96

按 無符號內 輸出 要用 格式 %u.

===體會容一下:

unsigned long int a = -66666;

printf("format x: %x\n",a);

printf("format u: %u\n",a);

printf("format d: %d\n",0xfffefb96);

printf("format u: %u\n",0xfffefb96);

12樓:匿名使用者

%d是有符號的,應該用%u,

13樓:劉子超1號

試試printf("%u\n", a);

14樓:匿名使用者

printf("%ud\n", a);試試。

C語言中unsignedint能顯示負數嗎

無符號數和bai 有符號數 在儲存上du並沒有區別 在使用的時候zhi 如果符號不匹配dao c會做自動轉換 比如內 你定義了無符號的a然後容賦值一個負數 1 就等同於a unsigned int 1 得到的a值實際上是0xffffffff 取決於編譯器,32位編譯器為這個值 如果用 u輸出 那麼就...

C語言藍色部分我是什麼錯誤,C語言 程式設計後,有錯誤,怎麼檢視是那部分出錯了!

無效運算元。操作符 的兩端都應該是int型,而你的右運算元是double型。c語言 程式設計後,有錯誤,怎麼檢視是那部分出錯了!不知道你用的什麼編譯器 大部分編譯器都會告訴你是在哪個檔案的哪一行出錯和出的什麼錯一般在錯誤上雙擊就能跳轉到那一行上去 1.if後面不能有分號,雖然編譯能過,但是錯誤的邏輯...

c語言程式設計問題 約瑟夫問題求解,C語言程式設計問題 約瑟夫問題求解

include include n表示最初有多少個人,m表示報數到多少的人離開,函式joseph返回最後剩下的人的編號 這個演算法應該比較經典,等高手解答。我的想法的是,兩數列不斷交替篩選。用一個迴圈連結串列就可以完成了!include struct nodenode,list,p,r void j...