c語言中printf後面f和72f有什麼區別一般

2021-03-07 01:31:24 字數 6203 閱讀 3014

1樓:12345額時代

區別%f是預設輸出,應該是小數點後6位,%7.2f是輸出小數點後2位,資料位寬是7位。操作方法如下:

1、首先新建一個printf專案,如圖所示。

2、然後新增一個printf.cpp檔案。

3、包含需要用到的標頭檔案。

4、接著輸入main函式,如圖所示。

5、printf作用:向控制檯輸出一段文字使用printf函式輸出hello world!,如圖所示。

6、最後執行程式,檢視效果就完成了。

2樓:淡若親風

%f是預設輸出,我記得應該是小數點後6位,%7.2f是輸出小數點後2位,資料位寬是7位。當資料位寬<7的時候用空格補齊,右對齊。>=7的時候正常輸出

比如1.2按照%f應該是1.200000,而%7.2f是 1.20(3個空格)

3樓:匿名使用者

表示最大場寬m,小數位為n位,整數位則為m-n-1位,夠m位右對齊。

%7.2f 表示輸出場寬為7的浮點數, 其中小數位為2,整數位為4,小數點佔一位,不夠9位右對齊

4樓:隔壁的_老王

這是格式化輸出

%7.2f是指輸出數字佔位為7個字元位,左對齊,有空餘位右邊補空格並且保留兩位小數的形式輸出

如果是%-7.2f則是右對齊,不夠七位左邊補空格

5樓:匿名使用者

控制輸出資料格式的,7.2表示輸出數字整數部分有7位,小數部分2位。想要控制輸出資料格式的時候就加上。

在c語言中 printf("a=%7.2f\n",a)中7.2f是啥子意思

6樓:匿名使用者

printf()函式用來在螢幕來上輸出字元源串,括號裡用bai雙引號括起來的是du

要輸出zhi的字元dao串

"a=%7.2f\n",a意思是輸出 「a=」+變數a的值,\n是輸出後換行的意思,%7.2f裡f的意思是輸出a的型別是float型別,7.

2即輸出左對齊,'7'位數,'.2'兩位小數. 答案補充 7.

2是說總共7位,小數點後兩位,如果不滿7位就要補上空格。

形如"a=%d,b=%f",a,b是指按照%d,%f的順序和格式,用a,b的值來替換百分號的地方

7樓:匿名使用者

輸出的a,數值有7位包bai括du2個小數點。如" 5.00",注意前面的zhi有空格一定要佔夠7位 答案dao補充內 479.

1235,保留小數點2位是479.12,位容數不夠前面加空格;而120005566.66小數點前就超出了7位,所以小數點前不變,小數點後保留2位小數;

%.2lf是說對整個位數不要求就是不用要在前面加空格了,只要求保留小數點2位,對比一下兩行兩數之間的空格一定不一樣。

8樓:匿名使用者

7位有效數bai字(其實是佔位符du號)裡面包括後面zhi的兩位小數dao和小數點

回。如果超出7位,則按實際答的輸出。例子如下:

#include

void main()

輸出:120005566.55, 479.12120005566.55,479.12

9樓:匿名使用者

輸出7位,小數點後佔兩位

小數點也算一位

不夠前面補空格

10樓:二零一弎

我這裡 gcc 5.4.0 是右對齊的。

c語言中 printf後的%f\n和%d\n有什麼區別

11樓:莫小雨威秉

%f用來輸出單精度數或雙精度

%d只能用於輸出整數型別

再看看別人怎麼說的。

12樓:匿名使用者

printf的格式化

抄字串中(printf的第一個引數襲

bai), %f和%d都是和後續的引數du一一zhi對應的。

其中%f對應的引數為單精度浮點型(float),dao%d對應的引數為整型(int)。

當後續引數與格式字元中的不符時,會按照格式字元,做強制轉換。

比如float a=1.0;

int b = 2;

printf("%f,%d\n",b,a);

等效於printf("%f,%d\n",(float)b,(int)a);

所以%f和%d的區別就是:

1 %f會輸出一個實數,是整數部分加小數點加小數部分的形式,預設有6位小數;

2 %d會輸出一個整數,只有整數部分,不會有小數點,更不會有小數部分。

13樓:匿名使用者

%f用來輸出單精度數或雙精度

%d只能用於輸出整數型別

14樓:匿名使用者

%f\n 這個%f是float型的

%d\n 這個%d是int型的

至於\n是換行符

c語言裡 scanf語句中 "%7.2f"什麼意思啊

15樓:生活當苦人當回

scanf中的7.2是非法的,scanf沒有精度控制,去掉.2是可以的,7表示從右開始要寫夠七位,不夠的用空格補上,-7表示從左開始

16樓:聽不清啊

c語言裡 scanf語句中 "%7.2f"是錯誤的,不能編譯通過的。最多隻能

float x; scanf("%7f",&x);

換句話說,只能指定讀入資料的總寬度,不能指定讀入資料的小數位數的。

17樓:匿名使用者

的確!抄在輸入的時候,不一定襲要求使用者按照我們規定的格式去輸入,只要使用者輸入規定的資料型別就可以了,一般這樣的格式控制應該在輸入pintf()裡出現,用於規範輸出的格式,而這種類似printf("%7.2f",a); 的語句中括號內 的「」內部 %7.

2 是控制輸出的float型別輸入,在資料不足7時(含小數部分和小數點)的時候,按照7個資料的位數輸出,資料向右對齊,小數點保留2位;舉個例子:#include

void main()

演示如下:

18樓:匿名使用者

表示輸出7位小數點後保留2位

c語言問題%f和%lf的區別

19樓:徜逸

由於精度的原因,輸出%lf和%f的資料不同,可能會造成錯誤。

主要有一下四點專區別:

1、代表的資料型別不同屬

%f代表單精度浮點型資料(float),%lf代表雙精度浮點型資料(double)。

2、有效數字位數不同

單精度浮點數有效數字保證6位,部分7位,雙精度浮點數有效數字保證15位,部分16位。

3、所能表示數的範圍不同

單精度浮點的表示範圍:-3.40e+38 ~ +3.40e+38,雙精度浮點的表示範圍:-1.79e+308 ~ +1.79e+308

4、在程式中處理速度不同

一般來說,cpu處理單精度浮點數的速度比處理雙精度浮點數快。

20樓:張

第6課時 c語言和c++的區別

21樓:匿名使用者

好好看看資料型別的概念吧,把前面的double換成float後面就可以用%f;%f代表按回實型輸入或輸出答,而%lf代表按雙精度輸入或輸出,怎麼會沒有關係呢?輸入時採取的格式不同,存在電腦裡的資料就不同,電腦裡同樣的資料(都是由0和1組成的相同的二進位制數)按不同的格式輸出結果也不會相同

22樓:匿名使用者

你之前已經定義到double了,最後的輸出值是按照表示式中的最多有效數字的形式定義的,也就是說如果你定義int a;doubule b;但是輸出是c=a+b,c則是double型

23樓:匿名使用者

你定義的double 當然配套的就要用%lf啊 至於%d 和%ld是一樣的 並不是你資料不存在就可以不用%lf

24樓:匿名使用者

float型別只有7位

因為是double型別乘一起去就不知道多少位了

所以得變成longfloat

25樓:_葉子妞妞

%f和%lf分別是復float型別和double型別用制於格式化輸入輸出時對bai應的格式符號。

其中:du

float,單精度浮點zhi型,對應dao%f.

double,雙精度浮點型,對應%lf.

在用於輸出時:

float型別可以使用%lf格式,但不會有任何好處。

double型別如果使用了%f格式可能會導致輸出錯誤。

在用於輸入時:

double 型別使用了%f格式,會導致輸入值錯誤。

float型別使用double型別不僅會導致輸入錯誤,還可能引起程式崩潰。

所以在輸入輸出時,一定要區分好double和float,而使用對應的格式符號。

26樓:寳貝謙

因為你定義的a,b,c都是double型吖…所以scanf()接收的a,b,c都是double型…double就是%lf咯…

如果用%f就是flout型咯…就跟定義的卟同了喔…

27樓:匿名使用者

f: float

lf:double

28樓:流星劃破夜空

#include

#include "math.h"

int main(void)

else

printf("it is not ********!\n");

return 0;

}試試這個

29樓:匿名使用者

你要輸出多少位,那按照下面這種輸出試試:

printf("%hf",yourfloat) ,其中,h用個小數替換掉回(用整數會成預設位數)

答,小數點後面的數字的值就是你列印yourfloat的小數點後面的位數,如"%0.15f" 、"%123.15f" 、"%0.000015f"都是列印小數點後15位

30樓:

看了你抄的**再結合你說的有時襲沒問題,

有時有問題,我判斷應該是你**中沒有將求出來的面積放入變數中儲存導致的。如果不放入變數中,你求出來的就是一個double型別的數值,此時你以float型輸出,由於型別不匹配所以程式自然報錯。如果你將這個值賦給一個變數則程式會自動分配一個記憶體給此變數,這樣當你以double輸出時程式會自動進行型別運算,自然也就不會出錯了。

31樓:斬月諸河

%f:float

%lf:double

因為你定義時用的是double型別,佔8個位元組而指定格式符是%f,對應的是float佔4個位元組,而資料型別位元組小的可以向大的轉換,反之則不行,所以會錯。

32樓:御板

scanf()語句:"%lf"用於double型別,"%f"用於float型別

printf(語句:"%f"既可用於double型別,又可用於float型別,但意思是指「保留6位小數」

33樓:匿名使用者

嘗試了一遍,還真是,十分感謝

34樓:匿名使用者

定義double 就用lf輸入輸出 定義float就用f輸入輸出

c語言裡%f中間加數字是什麼意思

35樓:匿名使用者

%f是用於格式化輸入輸出函式,對應型別為float的格式字元。加數字的情況僅適用於輸出函式,比如printf。

其形式為

printf("%a.bf", var);

其中a,b為常數。

含義為:

1 a, 代表輸出佔|a|(a的絕對值)個位元組的寬度,當實際寬度超過a時,按實際寬度輸出,否則輸出a個位元組,不足部分補空格。

如果a為正數,輸出的有效數字在右側,左側補空格。

如果a為負數,輸出的有效數字在左側,右側補空格。

2 b,代表輸出帶有b位小數,不足部分補0。

a,b可單獨使用,比如

printf("%4f", 1.2); 會輸出一個空格加上1.2。

printf("%.3f", 1.2); 會輸出1.200。

printf("%-8.4f", 1.2); 會輸出1.2000再輸出兩個空格。

c語言中scanf和printf函式的問題關於雙精度

其實嚴格來說 兩個是一樣的 輸入的時候要用 lf 輸出的時候也要用 lf 的 f能輸出double 我也不懂 哈哈 你就按照 double 對應 lf 理解就可以了能輸出不影響 lf 不能輸入輸出double的時候再問也不遲 lf長浮點型,f浮點型 1f 小數點後1位 如果是 輸出printf 的輸...

c語言中的f格式符,C語言中的 f格式符

f在輸入輸出使用,它表示輸入或輸出的數為浮點數 即可以帶小數的數 如 float a scanf f a 就可以輸入3.15 a 3.15 同理 d,表示輸入或輸出的數為整數。c表示輸入或輸出的數為字元。不曉得你上個問題是什麼,但是 f是輸出一個實數,並不需要制定輸出寬度的。他的小數位佔6寬度,小數...

c語言中單獨輸出轉義字元n如printfn代

格式字元裡 n 是換一來行的源意思。printf nabc 先bai 換一行,再列印du字元abc.printf abc n 先打zhi印字元abc,再換一行.printf nabc n 先 換一行,再列印字元abc,然後dao再換一行。是printf n 就是換行的意思 沒有區別,都是換行的意思 ...