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

2022-02-26 17:32:46 字數 4715 閱讀 4217

1樓:匿名使用者

其實嚴格來說 兩個是一樣的 輸入的時候要用%lf 輸出的時候也要用%lf 的

%f能輸出double 我也不懂 哈哈

你就按照 double 對應 lf 理解就可以了能輸出不影響 lf 不能輸入輸出double的時候再問也不遲

2樓:匿名使用者

%lf長浮點型,%f浮點型

3樓:匿名使用者

%1f 小數點後1位

4樓:香夢沉酣

如果是(輸出printf)的輸出項是double或float時,可以用%f或%e作為格式描述字元,(其中double也可以用%lf或%le)。double的意思是可以有16位有效數字,而在固定格式輸出的時候,都預設的是6位,輸出語句printf用double的時候f前面加l是沒有效果的,你要輸出長度,可以寫,%0.8f,這樣就是輸出8個有效數字了,要輸出幾位就改0.

後面的引數。

注意:如果是(輸入scanf)的輸入項為double時,則必須用%lf或%le(必須有個l)作為格式描述字元。位於輸入項為float與上面的一致。

c語言中printf輸出float和double都用%f麼(scanf又如何)

5樓:匿名使用者

答:1.c語言中printf輸出float和double都可以用%f,而double型資料還可以用%lf。

2.scanf當中若是對雙精度的變數賦值是必須是%後跟lf,而printf當中可以用%f也可以用%lf沒有限制。

拓展資料:c語言中的格式控制符:

%d十進位制有符號整數

%u十進位制無符號整數

%f浮點數

%s字串

%c單個字元

%p指標的值

%e指數形式的浮點數

%x,%x無符號以十六進位制表示的整數

%0無符號以八進位制表示的整數

%g自動選擇合適的表示法

6樓:匿名使用者

1、printf輸出float和double都可以用%f,同時double還可以用%lf。

2、scanf輸出float用%f,而double輸出用%lf,不能混用。

拓展資料:

c語言程式設計軟體是一款使用**c語言進行程式設計的軟體,c語言簡潔、高效、靈活的特性令其具有獨特魅力。現在的程式編寫朝著越來越冗長龐大的方向發展,而c語言雖然屬於相對'低階'的程式語言,但它的簡潔之美是無可替代的。

7樓:c語言基礎

c語言基礎學習,c語言基礎互動之printf函式和scanf函式

8樓:匿名使用者

double用%lf.scanf和printf一樣

9樓:光滑夜空的魅惑

printf輸出double不可用%lf,否則只能得出float的結果

10樓:鐳毅

printf("float %f, double %lf", f,d);

scanf也一樣。

c語言,關於scanf控制格式輸入小數的問題

11樓:物理公司的

scanf格式控制的完整格式:

% * m l或h 格式字元

①格式字元與printf函式中的使用方式相同,以%d、%o、%x、%c、%s、%f、%e,無%u格式、%g格式。

②可以指定輸入資料所佔列寬,系統自動按它擷取所需資料。如:

scanf(「%3d%3d」,&a,&b);

輸入:123456

系統自動將123賦給a,456賦給b。

③%後的「*」附加說明符,用來表示跳過它相應的資料。例如:

scanf(「%2d%*3d%2d」,&a,&b);

如果輸入如下資訊:1234567。將12賦給a,67賦給b。第二個資料」345」被跳過不賦給任何變數。

④輸入資料時不能規定精度,例如:

scanf(「%7.2f」,&a);

是不合法的,不能企圖輸入:12345.67而使a的值為12345.67。

c語言中scanf和printf都是輸出函式,兩者有什麼區別呢

12樓:匿名使用者

兩者完全不同,scanf是輸入函

數,printf是輸出函式,所以會經常同時出現。兩者也沒有可比性,需要弄清他們的概念。

1.scanf()是c語言中的一個輸入函式。函式 scanf() 是從標準輸入流stdio (標準輸入裝置,一般指向鍵盤)中讀內容的通用子程式,可以說明的格式讀入多個字元,並儲存在對應地址的變數中。

比如:scanf("%d %d",&a,&b);

函式返回值為int型。如果a和b都被成功讀入,那麼scanf的返回值就是2;

如果只有a被成功讀入,返回值為1;

如果a和b都未被成功讀入,返回值為0;

如果遇到錯誤或遇到end of file,返回值為eof。end of file為ctrl+z 或者ctrl+d。

2.printf()函式是格式化輸出函式, 它是c語言中產生格式化輸出的函式(在 stdio.h 中定義)。

用於向終端(顯示器、控制檯等)輸出字元。格式控制由要輸出的文字和資料格式說明組成。

printf 函式的一般形式為:

int printf(const char *format, [argument]);

format 引數是包含三種物件型別的一個字串:

(1)無格式字元複製到輸出流;

(2)轉換規範,每個規範導致在值引數列表中檢索 1 個或更多個項;

(3)轉義序列。

[argument]包含需要輸出的資料,可以是常量(字元常量、數字常量、字串常量),變數,以及運算式。此處的資料應當與前面的format中的格式控制符一一對應(如果不對應會產生錯誤)。

例子:#include

int main()

13樓:何度千尋

在使用scanf和printf函式時要加上#include 。其中scanf()是格式輸入函式,printf()函式是格式化輸出函式。

其通常的用法如下:

#include

int main()

14樓:匿名使用者

scanf是格式化輸入。不是輸出。

15樓:懷緯疏雅靜

scanf是輸入函式

printf是輸出函式

c語言,double型別的變數使用scanf()函式賦值後再使用printf()輸出,為什麼和輸入的值不同?

16樓:匿名使用者

c語言中double輸入輸出,都用 %lf 進行格式化,是否寫成了 %f, 這個是float型別。

#include

int main()

2. 字元定義如下

字元 對應資料型別 含義

d / i int 接受整數值並將它表示為有符號的十進位制整數,i是老式寫法

o unsigned int 無符號8進位制整數(不輸出字首0)

u unsigned int 無符號10進位制整數

x / x unsigned int 無符號16進位制整數,x對應的是abcdef,x對應的是abcdef(不輸出字首0x)

f(lf) float(double) 單精度浮點數用f,雙精度浮點數用lf(尤其scanf不能混用)

e / e double 科學計數法表示的數,此處"e"的大小寫代表在輸出時用的「e」的大小寫

g / g double 使用以上兩種中最短的形式,大小寫的使用同%e和%e

c char 字元型。可以把輸入的數字按照ascii碼相應轉換為對應的字元

s / s char * / wchar_t * 字串。輸出字串中的字元直至字串中的空字元(字串以'\0『結尾,這個'\0'即空字元)

p void * 以16進位制形式輸出指標

n int * 到此字元之前為止,一共輸出的字元個數,不輸出文字

% 無輸入 不進行轉換,輸出字元『%』(百分號)本身

m 無 列印errno值對應的出錯內容,(例: printf("%m\n"); )

17樓:

精度不夠  截斷了吧

改成這樣

#include

void main( )

%f是輸入float型時用的

18樓:京縈

float是4個位元組,而double是8個位元組,如果你要寫入double你就必須寫入8個位元組,4個位元組的寫入使得另外4個位元組就是隨機數字,可以用long float來替代double因為他也是8個位元組。

19樓:逐夢兮樂

#include

void main()

雙精度double要用%lf,不信,你試一試。祝你愉快!

20樓:廣月凋

因為double不能用%f來控制輸入和輸出,應該用%ld來控制輸入和輸出。

#include

void main( )

21樓:

scanf(「%lf」,&x)或scanf(「%le」,&x)才可以用來輸入double型別的資料

c語言中scanf裡面要求輸入的變數也要初始化嗎

int scanf const char format,scanf 函式是格式化輸入函式,它從標準輸入裝置 鍵盤 讀取輸入的資訊。其呼叫格式為 scanf 格式化字串 地址表 函式 scanf 是從標準輸入流 stdio 中讀內容的通用子程式,可以讀入全部固有型別的資料並自動轉換成機內形式。你的下面...

c語言 中的是什麼意思 int r 8print

是c語言中的位操作符,在譚浩強的 c程式設計 中第12章講位運算的裡面有講到有關位操作的知識。r 1 按位向右移動1位,8的二進位制碼 00001000右移後 00000100,記住是每一位都右移,如 a 163,二進位制 10100011,a 2後 00101000,移位後超出的自動去掉。另外還有...

c語言中用scanf函式輸入字串後用strcmp函式比較

那個抄,字串是襲 有結尾符的啊 bai。長du度應該 zhi宣告為3.int main 字元陣列不能用這bai樣du 的方式賦值,b ab 並且字元數zhi組的長dao度版要比,實際長度 1,因為系統會在數權組內部自動加一個 0 作為字串的結束標誌,它佔一個空間,你如進行賦值的話用 可以用gets和...