辣的果丶 发表于 2016-8-29 10:46:08

为什么是long double 类型的?而不是 float 类型的?

设有定义:

double a,b,c;
若要求通过输入分别给a、b、c输入1、2、3,输入形式如下(注:此处□代表一个空格)
□□1.0□□2.0□□3.0<回车>
则能进行正确输入的语句是
A) scanf("%lf%lf%lf",a,b,c);

B) scanf("%lf%lf%lf",&a,&b,&c);

C) scanf("%f%f%f",&a,&b,&c);

D) scanf("%5.1lf%5.1lf%5.1lf",&a,&b,&c);

DarkSE 发表于 2016-8-29 12:58:08

B
lf 是指 double
Lf指 long double

辣的果丶 发表于 2016-8-29 21:13:53

DarkSE 发表于 2016-8-29 12:58
B
lf 是指 double
Lf指 long double

C 和D能说下为啥不对吗?

iszhuangsha 发表于 2016-8-29 23:35:31

B

辣的果丶 发表于 2016-8-30 09:07:15

iszhuangsha 发表于 2016-8-29 23:35
B

能说下C,D错的理由吗?

菜鸟dc 发表于 2016-8-30 10:21:50

我感觉是d啊。。。%号前面的小数点后面不是表示保留几个小数位吗,个人愚见,请高手指教

DarkSE 发表于 2016-8-30 18:50:54

辣的果丶 发表于 2016-8-29 21:13
C 和D能说下为啥不对吗?

C 的话是%f,对应的是float型的数据
D 的话是%5.1lf 其中不能存在格式控制,这是错误的写法{:9_231:}

Krant5 发表于 2016-8-30 23:20:25

D中的格式控制符是输出的时候用的(格式化输出),我从来没见到输入时候用过,C类型错
页: [1]
查看完整版本: 为什么是long double 类型的?而不是 float 类型的?