C语言,找个错,不管输入什么,输出都是0.00

#include<stdio.h>voidmain(){floatf,c;printf("华氏温度是:\n");scanf("%f",&f);c=5/9*(f-32);p... #include<stdio.h>
void main(){
float f,c;
printf("华氏温度是:\n");
scanf("%f",&f);
c=5/9*(f-32);
printf("摄氏温度是%.2f\n",c);
}
在求问一个,这里我把
printf("华氏温度是:\n");

放到float f,c;这句的前面,会提示错误,这是为什么啊?
展开
 我来答
lsslddd
2012-07-09 · TA获得超过936个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:424万
展开全部
#include<stdio.h>
void main(){
float f,c;
printf("华氏温度是:\n");
scanf("%f",&f);
c=5.0/9*(f-32); /* 这里改成5.0/9 */
printf("摄氏温度是%.2f\n",c);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tju_qxy
2012-07-09
知道答主
回答量:21
采纳率:0%
帮助的人:14万
展开全部
c=5/9*(f-32) 这儿有问题,表达式从左往右算,先算5/9得0,然后再进行乘法运算,所以怎么算都是0,改成5.0/9就OK了。
追问
能不能说的详细点,的确是这里有问题,既然定义他为浮点数,不是应该可以算到小数点后吗?还有为什么改成5.0就可以了呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
水库的水5323
2012-07-09
知道答主
回答量:32
采纳率:0%
帮助的人:9.4万
展开全部
c=5/9*(f-32);
发生了隐式类型转换,你把5 和9改成5.0,9.0.就可以了。因此从左往右计算的时候,整数5除以整数9,得到的结果也会是整数类型的0,所以就一直是0了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
__zst__
2012-07-09
知道答主
回答量:33
采纳率:0%
帮助的人:13.1万
展开全部
c=5/9*(f-32);
这错了,5/9=0,应该是5.0/9*(f-32);
更多追问追答
追问
能不能说的详细点,的确是这里有问题,既然定义他为浮点数,不是应该可以算到小数点后吗?还有为什么改成5.0就可以了呢?
追答
不是5/9,系统把结果默认为int型,如果是5.0/9,结果就变成float型了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappgwc97XGF56aBE
2012-07-09 · TA获得超过342个赞
知道小有建树答主
回答量:569
采纳率:0%
帮助的人:471万
展开全部
你把 F,C 定义成 整数型 试试
追问
应该不是这个问题,我把
c=5/9*(f-32);改成c=5*(f-32)/9;就可以了,这是为什么啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式