實驗目的:
比照整型資料輸入輸出的**方式,研究浮點型資料的輸入輸出,在加深理解的基礎上能熟練使用浮點型資料。
實驗步驟:
//分數22/7小數點後有幾位?如果用它表示圓周率可以精確到哪一位?
1.填表並分析
float型
fafb
fcfd
值2.3
-0.0023
2.3e5
0.00023e-2
以%f格式預期的輸出為
以%e格式預期的輸出為
以%e格式預期的輸出為
以%f格式實際的輸出為
以%e格式實際的輸出為
以%e格式實際的輸出為
#include
void main()
float fa, fb, fc, fd;
fa = 2.3;
fb = -0.0023;
fc = 2.3e5;
fd = 0.00023e-2;
printf("%f,%e,%e\n", fa, fa, fa);
printf("%f,%e,%e\n", fb, fb, fb);
printf("%f,%e,%e\n", fc, fc, fc);
printf("%f,%e,%e\n", fd, fd, fd);
分析:1)用格式字串%f、%e和%e輸出浮點型資料時有何特點?
2)小數形式的資料在輸出時與其字面量相比有何不同?
3)指數形式的資料在輸出時與其字面量相比有何不同?
4)浮點型字面量2.3、0.0023e2和23e-1儲存在單精度變數中時它們的儲存狀態相同嗎?
2.填表並分析
變數為float型
scanf("…", &fa, &fb, &fc, &fd)
以%f格式輸入
2.3 -0.0023 2.3e5 0.00023e-2
以%e格式輸入
2.3 -0.0023 2.3e5 0.00023e-2
以%e格式輸入
2.3 -0.0023 2.3e5 0.00023e-2
給出每次輸入後每個變數以%f格式的預期輸出,並通過下面程式驗證。
#include
void main()
float fa, fb, fc, fd;
scanf("%f%f%f%f", &fa, &fb, &fc, &fd);
printf("%f,%f, %f,%f\n", fa, fb, fc, fd);
scanf("%e%e%e%e", &fa, &fb, &fc, &fd);
printf("%f,%f, %f,%f\n", fa, fb, fc, fd);
scanf("%e%e%e%e", &fa, &fb, &fc, &fd);
printf("%f,%f, %f,%f\n", fa, fb, fc, fd);
分析:1)在輸入浮點型資料時,格式字元f,e,e有區別嗎?
2)浮點型字面量的小數形式與指數形式在使用上有區別嗎?(即能用小數形式的字面量的地方就可以用指數形式的,反之亦然。)
3.填表並程式設計驗證
float型
fafb
fcfd
值2.3
-0.0023
2.3e5
0.00023e-2
以%13.2f格式輸出為
以%3.0f格式輸出為
以%-13.2f格式輸出為
以%.15f格式輸出為 問:
1)計算域寬時考慮小數點和正負號等字元嗎?
2)資料的實際寬度超出域寬時怎樣輸出?
3)可以用.0的形式輸出浮點型變數嗎?
4)以%.15f格式輸出浮點型變數時小數點後有15位,怎樣理解這種現象?
float型
fafb
fcfd
值2.3
-0.0023
2.3e5
0.00023e-2
以%13.2e格式輸出為
以%3.0e格式輸出為
以%-13.2e格式輸出為
以%.15e格式輸出為
4.指數形式的字面量有多種形式,如2.e3、.8等,結合練習2.14總結合法的指數形式字面量的特點並程式設計驗證。
double型資料輸入輸出
double a scanf f a 應該使用scanf lf a 執行上面語句時,發現double型別的輸入不能使用 f進行輸入,得用 lf才能正常得到a的值。而在輸出double型別時卻可以用 f,這是因為printf只認識雙精度,遇到 f自動將float型的引數轉換成double型。但是因為s...
實驗2 6 字元型資料的輸入輸出
實驗目的 1.掌握double型浮點數與float型浮點數的區別 2.與整型資料相比,浮點型資料會出現誤差,只要使用浮點型資料就一定會出現誤差嗎?實驗步驟 1.填表並分析 double型 fafb fcfd 值2.3 0.0023 2.3e5 0.00023e 2 以 f格式預期的輸出為 以 e格式...
實驗八 輸入輸出流
問題描述 程式設計序,對 k 1,2,3,14,15,按下式分別計算出 15 組 i,d,c 整數 i 2 k 1 實數 d k k k 9.8 字元 c h k。並通過使用運算子 輸入形式 無 輸出形式 檔案內容要求 每組佔一行,每行中的輸出項用乙個空格進行分割。樣例輸入 無 樣例輸出 檔案內容格...