狂想曲丶 发表于 2020-10-12 21:31:46

大一C习题

A和C有什么区别啊?感觉应该都可以

巴巴鲁 发表于 2020-10-12 21:34:59

double对应的%lf
float对应的%f

昨非 发表于 2020-10-12 21:36:37

输入时:
float型输入用%f
double型输入用%lf

输出时:
最好是都用%f输出
在G++中,double类型若用%lf输出可能会错,
而在C++中,double类型用%lf输出是正确的

昨非 发表于 2020-10-12 21:38:18

printf的%f说明符的确既可以输出float型又可以输出double型。根据“默认参数提升”规则float型会被提升为double型。因此printf()只会看到双精度数。对于scanf,情况就完全不同了,它接受指针,这里没有类似的类型提升。向float存储和向double存储大不一样,因此,scanf区别%f和%lf。      
也就是说输出的时候不管输出的是双精度还是单精度都用%f就没错了,但是输入的时候,输入单精度要用%f而输入双精度要用%lf

昨非 发表于 2020-10-12 21:41:03

大一新生要学会自己查问题,有些东西百度一搜都能找到答案,
强烈推荐CSDN,博客园
页: [1]
查看完整版本: 大一C习题