C语言 while( scanf("%lf",&Fnum) ==1 ) 没搞懂

C语言 while( scanf("%lf",&Fnum) ==1 ) 没搞懂,第1张

我们平时用的时候都是用的

while(scanf("%lf",&Fnum)!=EOF)

这个问题与函数输入函数,scanf()的返回值有关,当需要输入的变量都输入成功时,会返回输入的个数,你只让函数输入一个值,所以返回是1,换成其他就不正确了。如果遇到错误或遇到end of file,返回值为EOF。所以我的那种写法更通用一些。

printf("%2lf\n" ,m,input) 是输出一个浮点数,保留两位小数。其中,函数调用时格式串中的号会被参数中的m代替。

其中,%f 对应 float;%lf 对应 double;%lf 对应 long double;%e以科学计数法显示;%g在%e和%f中择短显示,

扩展资料:

函数调用的一般形式:

在程序中通过对函数的调用来执行函数体,其过程与其它语言的子程序调用相似。

C语言中,函数调用的一般形式为:

函数名(实际参数表)

对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其它构造类型数据及表达式。各实参之间用逗号分隔。

由于精度的原因,输出%lf和%f的数据不同,可能会造成错误。

主要有一下四点区别:

1、代表的数据类型不同

%f代表单精度浮点型数据(float),%lf代表双精度浮点型数据(double)。

2、有效数字位数不同

单精度浮点数有效数字保证6位,部分7位,双精度浮点数有效数字保证15位,部分16位。

3、所能表示数的范围不同

单精度浮点的表示范围:-340E+38 ~ +340E+38,双精度浮点的表示范围:-179E+308 ~ +179E+308

4、在程序中处理速度不同

一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快。

应该是%53lf吧,控制输出类型及格式的

5指输出的数宽度为5列

3指输出的数保留到小数点后三位

lf指双精度浮点型,对应double类型的数

如有不懂,欢迎追问!

以上就是关于C语言 while( scanf("%lf",&Fnum) ==1 ) 没搞懂全部的内容,包括:C语言 while( scanf("%lf",&Fnum) ==1 ) 没搞懂、%.*lf 简单的c语言、c语言里%f跟%lf有什么区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9778023.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存