关于C 语言的问题..

来源:百度知道 编辑:UC知道 时间:2024/05/24 05:08:54
一道C语言的题:
输入一个华氏温度,要求输出摄氏温度。
公式是:c=5/9*(F-32)
我写的程序是:
#include<stdio.h>
#include<math.h>
void main()
{
float F,c;
scanf("F=%f",&F);
c=5/9*(F-32);

printf("c=%.2f",c);
}
运行时 没有错误..但不管F输什么值 c都是0.00
那位高手可以告诉我 为什么啊 ?
如果程序错了 那错在哪请指出..如程序需要改进 该怎么改 ?
谢谢 ..

运算符号"/"的意思是整除,小数不要了。
所以你得到的是一个整数。
有两种方法:
1。c = 5.0/9
2。c = (float)5/9 推荐用这种强制转换类型的方法。
把参与整除运算的其中一个数强制转换成float类型,那么得到的结果自然会提升为float类型。因为float 类型的精度比int类型要高

c=5/9*(F-32); ``
改成5。0/9因为5/9==0``呵呵 ·

楼上说的对,5/9 是取整,整数部分就变成0了,所以后面就变成0*什么什么了,改成5.0,就是一个float除以int,那么系统就会默认结果是float类型的了