c语言简单一个小问题。小弟拜谢各位大哥。

duliang135 2012-09-25 11:01:41
c语言,让用户输入华氏温度然后转换成摄氏温度的简单代码。怎么写都不对。求助。
#include<stdio.h>

int main(void)
{
double fahrenheit,celsius;
printf("Please input the value of fahrenheit: \n");
scanf("%lf",&fahrenheit);
celsius=5/9*(fahrenheit-32);
printf("The fahrenheit you inputed is %.3lf and the same value of celsius is: %.3lf \n",fahrenheit,celsius);
return 0;
}




...全文
150 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2012-09-26
  • 打赏
  • 举报
回复
常量也有类型!
vipvvv 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 2 楼 的回复:

为什么是5.0呢?那9用变成9.0吗?

如果一个数学表达式里的操作数都是整数,那么结果也是整数
只要有一个浮点数,结果就是浮点数
5/9==0,5.0/9==0.555555555
[/Quote]

正解
baichi4141 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

为什么是5.0呢?那9用变成9.0吗?
[/Quote]
如果一个数学表达式里的操作数都是整数,那么结果也是整数
只要有一个浮点数,结果就是浮点数
5/9==0,5.0/9==0.555555555
wang0303mh 2012-09-26
  • 打赏
  • 举报
回复
类型转换的问题:
double 和 int 类型计算时,int会自动转换为double类型,再进行计算;
把5 改为5.0之后,编译器会将9自动转换为9.0,再做计算,当然生成的结果也如同楼上所说的是double类型的
改一个就可以了,5或者9 都可以。
xspace_time 2012-09-26
  • 打赏
  • 举报
回复
只知道不加点 就不正确

那就加上吧

不过用宏比较好用一点
#define FT 5
#define MT 9
#define T(x) (double)x


celsius=T(FT)/T(CT)*(fahrenheit-32);
duliang135 2012-09-26
  • 打赏
  • 举报
回复
那请问下我还用不用把9变成9.0了呢?[Quote=引用 3 楼 的回复:]
引用 2 楼 的回复:

为什么是5.0呢?那9用变成9.0吗?

如果一个数学表达式里的操作数都是整数,那么结果也是整数
只要有一个浮点数,结果就是浮点数
5/9==0,5.0/9==0.555555555
[/Quote]
duliang135 2012-09-25
  • 打赏
  • 举报
回复
为什么是5.0呢?那9用变成9.0吗?
JoeBlackzqq 2012-09-25
  • 打赏
  • 举报
回复
celsius=5.0 / 9*(fahrenheit-32);

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧