有的時候輸出為%lf答案就正確。%f就錯。為什麼?
老師說lf是double型別 代表15位有效數字。但是在求三角形面積問題裡根本與這個無關。以下**把%f改為%lf就能輸出正確答案。 為什麼??
#include "stdio.h"
#include "math.h"
int main (void)
else
printf("it is not ********!\n");
return 0;
}
%f和%lf分別是float型別和double型別用於格式化輸入輸出時對應的格式符號。
其中:float,單精度浮點型,對應%f.
double,雙精度浮點型,對應%lf.
在用於輸出時:
float型別可以使用%lf格式,但不會有任何好處。
double型別如果使用了%f格式可能會導致輸出錯誤。
在用於輸入時:
double 型別使用了%f格式,會導致輸入值錯誤。
float型別使用double型別不僅會導致輸入錯誤,還可能引起程式崩潰。
所以在輸入輸出時,一定要區分好double和float,而使用對應的格式符號。
%ld用來輸出長整型數。
%d用來輸出整型數。
因為格式符指明了輸出指定的起始位址開始的若干個位元組的內容(把它們作為長整型數或整型數來解釋),所以,如果用錯了物件,就會得出意想不到的結果。如果用%d來輸出長整型數,就會只取它的頭上幾個位元組,相當於對原來的長整型數取了模;而如果用%ld來輸出整型數,因為實際的數位元組數少而硬要取更多的位元組,就會發生「把別人家的孩子領回家」的事,把別的資料解釋為當前的值了。
C語言 投票問題
問題描述 有n個選民參與投票,候選人分別為a,b,c,d,現在選民分別投a,b,c,d代表4個候選人 資料由電腦隨機產生 無效資料自動排出 最後由高到低排列候選人和其票數 要點解決 1.產生隨機數要用到隨機種子,以當前時間為起始點進行隨機,生成隨機數較大 對其取餘,加上 a 即可生成對應的abcde...
C語言小問題
define max a,b 於是我開始修改 檢視各種 反饋的結果。int a 10,b 100 int x 好吧,我把圓括號給刪除了,於是編譯器給我報錯了。error expected expression before int int a,b 好吧,不能沒有圓括號,雖然現在還不知道是為啥。然後我...
C語言基礎問題
邏輯與 邏輯或 取非 按位與 按位或 按位異或 交換ab兩個數的值,不用temp變數,只需三步 a a b b b a a a b 取乙個整數a從右端開始的 4 7 位。我們首先將a右移4位,即將a的4 7位移到最右端,成為 0 3位,實現方法是 a 7 4 1 即 a 4 再設定乙個低4位為全1,...