实验2-4 浮点型数据的输入输出

 

实验目的:

比照整型数据输入输出的探讨方式,研究浮点型数据的输入输出,在加深理解的基础上能熟练使用浮点型数据。

实验步骤:

//分数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格式输出为

 

 

 

 

4.指数形式的字面量有多种形式,如2.e3、.8等,结合练习2.14总结合法的指数形式字面量的特点并编程验证。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值