搜索
查看: 5105|回复: 15
打印 上一主题 下一主题

哪位大神请帮我看看为什么输出总是-17.777778

[复制链接]
楼主
发表于 2014-3-9 17:33:29 | 显示全部楼层
本帖最后由 李掌柜 于 2014-3-9 18:51 编辑
  1. //第八行多加个l就行了~~~
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. int main()
  5. {
  6.         double Fahrenheit,Celsius;
  7.     printf("Please enter the temperrature in degrees Fahrenheit:");
  8.     scanf("%lf", &Fahrenheit);    //双精度的格式一般为lf
  9.     Celsius=(5.0/9.0)*(Fahrenheit-32.0);
  10.     printf("It's %lf degrees",Celsius);

  11.     system("pause");
  12.     return 0;
  13. }
复制代码
沙发
发表于 2014-3-9 18:44:51 | 显示全部楼层

怎么会不行呢,例如我输入31,32,33这三个数,你自己看图片罗~~

31.png (79.58 KB, 下载次数: 72)

31

31

32.png (93.11 KB, 下载次数: 64)

32

32

33.png (87.17 KB, 下载次数: 77)

33

33
板凳
发表于 2014-3-11 21:15:44 | 显示全部楼层
4399APPLE 发表于 2014-3-10 10:10
printf和scanf都成为%lf

浮点数long double 的写法,
所以在输入时,需要区分float(%f)与double(%lf),而在输出时,用%f即可

因为有除法和乖法,为了保正精确度,
详细可参见C Primer Plus 48页
格式什么的这位大神有写的很详细
http://blog.csdn.net/zfzf294990051/article/details/6303552

abc25.png (191.64 KB, 下载次数: 70)

abc25.png
地板
发表于 2014-3-11 21:20:30 | 显示全部楼层
4399APPLE 发表于 2014-3-10 10:10
printf和scanf都成为%lf

printf输出用%f
偶为了格式一致性,printf也写成了%lf格式~~
5#
发表于 2014-3-12 17:40:54 | 显示全部楼层

XP  呀~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表