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和...