啊哈磊_编程从这里起步

标题: 哪位大神请帮我看看为什么输出总是-17.777778 [打印本页]

作者: 忆中寻思    时间: 2014-3-9 17:33
标题: 哪位大神请帮我看看为什么输出总是-17.777778

#include <stdio.h>
#include <stdlib.h>
int main()
{
double Fahrenheit,Celsius;
    printf("Please enter the temperrature in degrees Fahrenheit:");
    scanf("%f", &Fahrenheit);
    Celsius=(5.0/9.0)*(Fahrenheit-32.0);
    printf("It's %f degrees",Celsius);

system("pause");
return 0;
}


作者: 李掌柜    时间: 2014-3-9 17:33
本帖最后由 李掌柜 于 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:37
还是不行!
作者: 李掌柜    时间: 2014-3-9 18:44
忆中寻思 发表于 2014-3-9 18:37
还是不行!

怎么会不行呢,例如我输入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-9 19:23


作者: 忆中寻思    时间: 2014-3-9 19:26
好的回复是对人的鼓励。
作者: 4399APPLE    时间: 2014-3-10 10:10
忆中寻思 发表于 2014-3-9 18:37
还是不行!

printf和scanf都成为%lf
作者: 4399APPLE    时间: 2014-3-10 10:10
李掌柜 发表于 2014-3-9 18:44
怎么会不行呢,例如我输入31,32,33这三个数,你自己看图片罗~~

什么编译器
作者: 李掌柜    时间: 2014-3-11 21:15
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
4399APPLE 发表于 2014-3-10 10:10
printf和scanf都成为%lf

printf输出用%f
偶为了格式一致性,printf也写成了%lf格式~~
作者: 4399APPLE    时间: 2014-3-12 14:40
李掌柜 发表于 2014-3-9 18:44
怎么会不行呢,例如我输入31,32,33这三个数,你自己看图片罗~~

UNIX 系统??
作者: rosynirvana    时间: 2014-3-12 14:43
4399APPLE 发表于 2014-3-12 14:40
UNIX 系统??

和你说了mingw,怎么可能是unix
作者: 李掌柜    时间: 2014-3-12 17:40
4399APPLE 发表于 2014-3-12 14:40
UNIX 系统??

XP  呀~~
作者: shly900928    时间: 2014-3-19 23:18
不用定义双精度型,直接定义单精度变量
作者: rosynirvana    时间: 2014-3-19 23:30
shly900928 发表于 2014-3-19 23:18
不用定义双精度型,直接定义单精度变量

在学编程的前两年是不会用到float这东西的
而且或许以后永远不会用到……




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2