來看一下C語言中這個float的問題

時間 2021-09-11 22:33:35

1樓:匿名使用者

%d 按整型資料的實際長度輸出

%md m是指輸出欄位的寬度。如果資料的位數小於m,則在左端補空格;若大於m,則按資料的實際位數輸出。

%ld 輸出長整型資料

%o 以八進位制輸出整型數

%x 以十六進製制輸出整型數

%u 以十進位制輸出unsigned型資料

%c 輸出字元

%s 輸出字串

%ms 輸出字元佔m列,如果串長度小於m則左邊補空格,若大於m則按原長度輸出

%-ms 如果串長度小於m,則字串相左靠,右邊補空格

%m.ns 輸出佔m列,但只取字串的左端n個字元。這n個字元在m的右側,左邊補空格

%-m.ns 其中m,n含義同上,n個字元輸出在m列的左側,右端補空格。如果n>m,則m自動取n值,即保證n個字元正常輸出

%f 不指定字元寬度,由系統自動指定,使整數部分全部輸出,並輸出6位小數。應當注意輸出的數字並非全部都是有效數字。單精度數的有效位數一般是7位,而雙精度數的有效位數一般是16位。

%m.nf 指定輸出的數列佔m列,其中有n位小數。若數值長度小於m,左端補空格。

%-m.nf與%m.nf 的區別僅在於使輸出的數值向左端靠,右端補空格。

%e 不指定輸出資料所佔的寬度和數字部分的小數字數

%m.ne和%-m.ne含義與前面相同

%g 假設乙個數要用%f和%e輸出,用%g格式時自動從這兩種格式中選出最短者

2樓:匿名使用者

因為輸出的為%d是int型別,不符合float型別的資料,若改為printf("%f\n",(float)(5+2)); 就會輸出正確資料

3樓:

型別失配

printf("%f\n",(float)(5+2));

4樓:匿名使用者

前後的資料型別不配

要不把前面的輸出格式改為%f,要不把後面的(float)去掉

5樓:

%d是不能輸出float型別的資料的。應該是printf("%f\n",(float)(5+2));

如果是你那樣寫的話,後面的數字如果是小數時,就是小數點後面不全為0的時候,輸出就不是0了,例如:printf("%d\n",(float)(5.2345+2)); 這個與計算機浮點數的編碼有關。

6樓:男boy孩

汗哦!!後面是整型啊,你為什麼要強制轉換成浮點型啊!!那樣結果就不正確了

求大佬解釋下這個C語言程式設計,求大佬看一下這個C語言程式設計我哪錯了?

風若遠去何人留 從檔案質檢.txt中讀資料,每行六個字串為一組資料 將讀到的資料存到連結串列裡面 999所向披靡 從程式函式來看,大致是開啟 質檢.txt 檔案,如果未到檔案尾,就不斷向檔案中輸入 寫入 結構體形式的資料。結構體的屬性包括 id name.具體含義你得看下文件。 開啟 質檢.txt ...

麻煩看一下此程式的錯誤(C語言)

根據您說的scanf如數,我也改了下 請查收 include int main int max int x,int y 已改好,請查收! 帶著光圈的小雞 你是用什麼編譯器,vc6 還是 vs2008?如果用的是vs2008以後的,max 函式在標頭檔案中已經定義了,所以會報重複定義的錯誤 編譯為c ...

英語高手進來看一下

東山鐘晚 英語中的這些語法跟中文裡的語法幾乎是一樣的。平時的學英語學習中,不要太過注重英語的語法問題。畢竟我們不是要成為語法專家。學任何語言都一樣,就像我們學漢語。很多語法知識其實我們或許沒去注意,但我們其實都或多或少在遵循著那些語法規則。這是什麼原因呢?其實,你看得多了,聽得多了,說得多了,練得多...