永发信息网

c++编程序实现华氏温度到摄氏温度的转换

答案:5  悬赏:20  手机版
解决时间 2021-03-04 18:18
#include <iostream>
#include<stdlib.h>
using namespace std;
int main()
{

double c,f;
cout << "请输入华氏温度:\n";
cin >> f;
c = 5 / 9* (f - 32);
cout << "相应华氏温度为:" << c;
system("pause");
return 0;

}
。为什么我得到的值为0,还有怎么让它精确到2位小数,并且4四舍五入第三位。
最佳答案
你的代码中问题
1、一个双精度数据与一个整数数据运算,结果默认为整数数据。
2、输出精确到2位小数的方法。

正确代码如下:
#include <iostream>
#include<stdlib.h>
#include <iomanip>  //--注意
using namespace std;
int main()
{

double c,f;
cout << "请输入华氏温度:\n";
cin >> f;
c = (5.00000 / 9.00000)* (f - 32.00000);

//cout << "相应华氏温度为1:" << c ;
cout << "相应华氏温度为2:" << setprecision(2)<<fixed<<c ; //--注意

system("pause"); //暂停以查看 
return 0; 

}
全部回答
#include using namespace std; void main() { float f; cout<<"输入摄氏温度"< cin>>f; cout<<"输出华氏温度为:"< cout<<(f*9.0f/5.0f)+32.0f< } vs 2005调试通过
注意你算式里的5/9,它的除数和被除数都是整型,所以表示整除,5整除9等于0,所以得到的值为0。 要控制精确度,可以使用printf,要精确两位就是printf("%.2llf",c);
c = 5 / 9* (f - 32); 这行代码有问题 你期望的是double类型的数值进行四则运算 可是计算式中的两个常量在编译器中被认为是两个int类型的数值 5/9可不就是0嘛 所以计算式始终为0 而且这个式子还有个问题 数值隐式类型转换会把double转换为int 即便你的前面两个常量可以得到非0值 你得到的结果始终都是整型 至于按要求输出小数位数 c++库是有相关处理接口的 #include <iomanip> double x=123.0; cout << setprecision(2) << x << endl; 这个接口是否有四舍五入的设计 我不太清楚 你需要自己测试一下
#include <iomanip.h> c = 5*1.0 / 9* (f - 32); cout.precision(3); cout << "相应华氏温度为:" << c;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
紧急求助,改了无线网用户名和密码之后可以连
彭氏修脚怎么去啊,有知道地址的么
除消防安全重点单位外其他单位应当每()开展
春暖复合肥多少钱一袋
飞科剃须刀充不了电
两年前七万多点的北京现代是什么车型
亲亲宝贝双语幼儿园怎么去啊,有知道地址的么
妩媚近义词是什么
陶园社区地址在哪,我要去那里办事
中山怎么才能快速去掉黑眼圈
魔兽世界视距的问题
电脑升级win10后怎么开机那么慢
阿荣旗良种场地址有知道的么?有点事想过去
最强的处理器怎么获得
微量输注延长管对比哪个更好,微量输注延长管
推荐资讯
暖宝宝充电热水袋存在安全隐患吗
720分9份是多少 0.0
办理分期还款后查询不到账单
偏头痛应该吃什么药最好
研究生复试笔试考什么
远大港务这个地址在什么地方,我要处理点事
临汾市平阳中学的校长宋全喜有什么爱好?
车辆再外省违章回当地能处理吗
求好听的粤语歌,有节奏一点的,像处处吻这样
巴尔扎克说:“世界上的事情永远不是绝对的,
土地补偿金一次性付给村里,使用年限如何表述
王姓起名江字辈男孩三个字
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?