本文共 1559 字,大约阅读时间需要 5 分钟。
实验目的:
比照整型数据输入输出的探讨方式,研究浮点型数据的输入输出,在加深理解的基础上能熟练使用浮点型数据。
实验步骤:
//分数22/7小数点后有几位?如果用它表示圆周率可以精确到哪一位?
1.填表并分析
float型 | fa | fb | fc | fd |
值 | 2.3 | -0.0023 | 2.3e5 | 0.00023E-2 |
以%f格式预期的输出为 |
|
|
|
|
以%e格式预期的输出为 |
|
|
|
|
以%E格式预期的输出为 |
|
|
|
|
以%f格式实际的输出为 |
|
|
|
|
以%e格式实际的输出为 |
|
|
|
|
以%E格式实际的输出为 |
|
|
|
|
#include <stdio.h>
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 <stdio.h>
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型 | fa | fb | fc | fd |
值 | 2.3 | -0.0023 | 2.3e5 | 0.00023E-2 |
以%13.2f格式输出为 |
|
|
|
|
以%3.0f格式输出为 |
|
|
|
|
以%-13.2f格式输出为 |
|
|
|
|
以%.15f格式输出为 |
|
|
|
|
问:
1)计算域宽时考虑小数点和正负号等字符吗?
2)数据的实际宽度超出域宽时怎样输出?
3)可以用.0的形式输出浮点型变量吗?
4)以%.15f格式输出浮点型变量时小数点后有15位,怎样理解这种现象?
float型 | fa | fb | fc | fd |
值 | 2.3 | -0.0023 | 2.3e5 | 0.00023E-2 |
以%13.2e格式输出为 |
|
|
|
|
以%3.0e格式输出为 |
|
|
|
|
以%-13.2E格式输出为 |
|
|
|
|
以%.15e格式输出为 |
|
|
|
|
转载地址:http://vbdti.baihongyu.com/