c語言中用scanf輸入雙精度浮點數

2021-12-23 04:12:21 字數 3109 閱讀 5956

1樓:小夏在深圳

c語言中用scanf輸入雙精度浮點數的源**如下

#include

#include

int main()

int n, *a, i;

printf("請輸入陣列長度:");

scanf("%d", &n);

a = malloc(sizeof(int) * n); /*分配記憶體*/

printf("請輸入%d個數:\n", n);

for(i = 0; i < n; i++)

scanf("%d", a + i);

printf("您輸入的數是:\n");

for(i = 0; i < n; i++)

printf("%d ", a[i]);

free(a); /*釋放記憶體*/

return 0;

擴充套件資料

1、scanf()函式開始每次讀取一個輸入字元,它跳過空白字元直到遇到一個非空白字元。因為它試圖讀取一個整數,所以scanf()期望發現一個數字字元或者一個符號(+或-)。

2、如它發現了一個數字或一個符號,那麼它就儲存之並讀取下一個字元。scanf()持續讀取和儲存字元直到它遇到一個非數字的字元。如遇到了一個非數字的字元,它就得出結論,它已經講到了整數的尾部。

3、scanf()把這個非數字字元放回輸入。這就意味著程式下一次開始讀取輸入時,它將從前面被放棄的那個非數字字元開始。最後,scanf()計算它讀取到的數字的相應數值,並將該值放到指定的變數中。

2樓:滄海雄風

double 輸出需要用 %lf

你這個是相當於把double強制轉換成 float了float明顯放不下 溢位了 所以出錯

有疑問請追問 滿意記得采納

3樓:匿名使用者

因為double是8個位元組的,float是4個位元組的,%f 的格式就是4個位元組的,而 %lf 就是8個位元組的

4樓:小欸如是說

%f是但進度浮點數的格式雙精度浮點數應用%lf,改一下就行了

因為double是8個位元組的,float是4個位元組的,%f 的格式就是4個位元組的,而 %lf 就是8個位元組的

#include #include int main( void )

5樓:風流沼

%f是但進度浮點數的格式雙精度浮點數應用%lf,改一下就行了#include

#include

int main( void )

c語言中如何用scanf語句輸入一個雙精度數?

6樓:匿名使用者

主要通過scanf格式化輸入語句,主要**如下,double x;//宣告變數

scanf("%lf",&x);//賦值,l/l 長度修飾符,輸入"長"資料,對應double

printf("x=%lf\n",x);//列印輸出int scanf(const char *format,...);是格式輸入函式,即按使用者指定的格式把資料輸入到指定的變數之中。需要注意的是,針對浮點數scanf()函式中沒有精度控制,像 scanf("%5.

4lf",&x); 就是非法的。

7樓:匿名使用者

scanf("%lf",&x);

printf("x1=%lf\n",x);

記住double的格式控制符是%lf,不是1f也不是f

8樓:匿名使用者

程式設計要心很細,0與o,1與l不能搞錯的

scanf("%1f",&x); // %f中的不是數字一,而是小寫l,

9樓:戴曼彤

#include

void main()

c語言中,用scanf函式輸入一個浮點數,在之後的運算中如何精確到小數點後三位?

10樓:聽不清啊

double x;

scanf("%lf",&x);

x=.......;

printf("%.3lf\n",x);

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

11樓:匿名使用者

答: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自動選擇合適的表示法

12樓:匿名使用者

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

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

拓展資料:

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

13樓:c語言基礎

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

14樓:匿名使用者

double用%lf.scanf和printf一樣

15樓:光滑夜空的魅惑

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

16樓:鐳毅

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

scanf也一樣。

為什麼C語言中要用「scanf」

要耐心看啊!別看字多,容易讀的!要分成3段讀,不要一口氣看完!1.scanf就是輸入一個數然後回車結束。聽不懂不好意思 別理他 舉個例子 int i 定義i 然後我們提示使用者輸入,printf 請輸入一個數 接著,我們使用scanf d i 輸入完數後,我們跟使用者說聲你剛才輸的數 printf ...

c語言中的單精度型和雙精度型是什麼意思

單精度和雙精度最大區別就是結果精確到第幾位。單精度是這樣的格式,1位符號,8位指數,23位小數。雙精度是1位符號,11位指數,52位小數。1 單精度和雙精度都指浮點數,就是帶小數點的數2 單精度數的有效位數比較少,7位左右,雙精度的在幾十位。3 單精度定義是用float 4 雙精度定義是用doubl...

c語言中單精度型與雙精度型有什麼區別和是什麼

單精度是float,是4個位元組的 雙精度是double,是8個位元組的 大小都不一樣了,表示的當然也就不一樣,雙精度可以表示的數的範圍可以大一點 c語言中什麼是單精度型和雙精度型?各舉個例子。單精度型和雙精度型的區別在於它們的精確程度不一樣,也就是小數部分的有效位數不一樣。62616964757a...