中易网

求大佬看看我这c语言程序有什么问题,为什么输出值为0

答案:3  悬赏:80  
解决时间 2021-01-15 12:00
求大佬看看我这c语言程序有什么问题,为什么输出值为0
最佳答案

#include
#include
#include
#include
#include
#include
#include
#include
//#include
#define MAX 50  //

#include

int main()

    int value; 
    float temp,a; 
    scanf("%d",&value); 
    switch(value) { 
        case 1: printf("请输入华氏温度:");scanf("%f",&temp); a=5.0/9*(temp-32);printf("其摄氏温度为:%.2f",a); break; 
        ///  5/9时整除掉了,把5改为5.0/9 .下一行同理.把9/5中的9改为9.0.不然结果不对的
        ///或者直接强制转换(5/9或9/5)成浮点数
        case 2: printf("请输入摄氏温度:");scanf("%f",&temp); a=9.0/5*temp+32; printf("其华氏温度为:%.2f",a); break; 
        default:printf("error!!!"); 
    } return 0;
}
全部回答
因为你的那个算式,5/9*(temp-32)是从左向右算的,5/9=0.所以你的结果为0
a=5/9*(temp-32)
编译器从左往右计算,5和9都是整数,5/9也是整数,得数为零点几,但是整数就看做0.0再和(temp-32)相乘依然为0.
解决办法:
1、a=5.0/9.0*(temp-32.0); //所有数据类型均为float型
2、a=(temp-32.0)*5/9; //cpu会先计算float,则后续计算均按照float进行计算
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
行政诉讼可以上诉多少次
买了9年的平安保险想退保,请给点意见
i5八代性能好还是i7七代性能好?
外墙漏水用什么涂料好?宝泽高级水性聚酯防水
萍萍工作室地址好找么,我有些事要过去
全友天然椰棕床垫好不好
解签:好事大家知,做事勿尓伊。当前未遂意,神
加油站(郭新线)地址在什么地方,我要处理点事
风投和IPO有什么关系 请举例说明
有一部电影,描述的是一个超人学校,里面的孩
什么是通勤居民区
河南宏鑫源智能工程有限公司这家公司如何?
骑马与砍杀2怎么回事?还没出?不说年末吗?
刚买的古琴里面生蛀虫了,怎么办
宝宝喉咙喉喉怎么回事
推荐资讯
玄兽决激活需要多少天书残页
x+y=12 x÷y=1.2 x=? y=?
d.l.n.o.o.e.s.组成什么英语单词怎么写
勾子怎么才能勾到鸽子的嘴?
DNF天御怎么计算战力
鲜豆腐皮怎么做好吃,小抄鲜豆腐皮的家常做
《女人进城》王红艳谁演的 王红艳扮演者
这是奔驰那款
写挽联可以盖章吗?
那个大师帮我把许仙奔跑的时候选一张照片,然
祝意车行怎么去啊,我要去那办事
大家1.6t的君威油耗都是多少,晒晒
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?