博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实验2-6 字符型数据的输入输出
阅读量:4143 次
发布时间:2019-05-25

本文共 1956 字,大约阅读时间需要 6 分钟。

 

实验目的:

1.掌握double型浮点数与float型浮点数的区别

2.与整型数据相比,浮点型数据会出现误差,只要使用浮点型数据就一定会出现误差吗?

实验步骤:

1. 填表并分析

double型

fa

fb

fc

fd

2.3

-0.0023

2.3e5

0.00023E-2

以%f格式预期的输出为

 

 

 

 

以%e格式预期的输出为

 

 

 

 

以%E格式预期的输出为

 

 

 

 

以%f格式实际的输出为

 

 

 

 

以%e格式实际的输出为

 

 

 

 

以%E格式实际的输出为

 

 

 

 

#include <stdio.h>

void main()

{

       double 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)与实验2-4中的第一步相比,输出有何不同?

2)double型变量与float型变量相比有何不同?

2. 填表并编程验证

double型

fa

fb

fc

fd

2.3

-0.0023

2.3e5

0.00023E-2

以%13.2f格式输出为

 

 

 

 

以%3.0f格式输出为

 

 

 

 

以%-13.2f格式输出为

 

 

 

 

以%.15f格式输出为

 

 

 

 

分析:

1)与实验2-4中的第三步相比,输出有何不同?

2)double型变量与float型变量相比有何不同?

3. 填表并分析

变量为double型

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()

{

       double 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)与实验2-4中的第二步相比,输出有何不同?可以得出一个什么结论?

切记:输出时格式字符f,e,E对double型变量和float型变量通用,但在输入时double型变量所对应的格式字符前必须加长度修饰符l。

2)除了double型变量所对应的格式字符前须加长度修饰符l之外,其与float型变量在输入时还有区别吗?

4.给出程序的输出并分析。

#include <stdio.h>

void main()

{

 

       float fb = 0.1;

    printf("%.15f\n", fb);

       printf("%.15f\n", fb+fb+fb+fb+fb+fb+fb+fb+fb+fb);

printf("%.15f\n", 1.0);  

}

分析:

变量fb加十次等于1吗?为什么?

5. 浮点型变量的误差。

5.1填表并编程验证。

float型

fa

fb

fc

fd

0.125

0.00125

0.125e-3

-0.125

用二进制的指数形式表示为

 

 

 

 

以%.18f格式的输出为

 

 

 

 

double型

fa

fb

fc

fd

0.125

0.00125

0.125e-3

-0.125

以%.18f格式的输出为

 

 

 

 

分析:

1)当变量为float型时,变量fa为何没有误差?

2)当变量为float型时,变量fb的输出是:0.001249999972060323,这与float型浮点数只能精确到小数点后的6至7位矛盾吗?

3)浮点型数据什么情况没有误差?

5.2填表并编程验证

float型

fa

125125125.125e2

用二进制的指数形式表示为

 

以%.18f格式的输出为

 

double型

fa

125125125.125e2

用二进制的指数形式表示为

 

以%.18f格式的输出为

 

分析:

浮点型数据在什么情况下没有误差?

转载地址:http://tbdti.baihongyu.com/

你可能感兴趣的文章
iOS菜鸟学习--如何避免两个按钮同时响应
查看>>
iOS菜鸟学习—— NSSortDescriptor的使用
查看>>
C语言8
查看>>
Qt实现简单延时
查看>>
qml有关矩形说明
查看>>
在qt中使用QSplitter设置初始比例setStretchFactor失效的解决方法
查看>>
repeater的使用
查看>>
qt msvc编译中文乱码解决
查看>>
qt实现点击出现窗口,点击其他任何地方窗口消失
查看>>
QML DropArea拖拉文件事件
查看>>
CORBA links
查看>>
读后感:&gt;
查看>>
ideas about sharing software
查看>>
different aspects for software
查看>>
To do list
查看>>
Study of Source code
查看>>
如何使用BBC英语学习频道
查看>>
spring事务探索
查看>>
浅谈Spring声明式事务管理ThreadLocal和JDKProxy
查看>>
初识xsd
查看>>