永发信息网

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

答案:5  悬赏:20  手机版
解决时间 2021-03-04 18:18
  • 提问者网友:辞取
  • 2021-03-04 09:17
#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四舍五入第三位。
最佳答案
  • 五星知识达人网友:零点过十分
  • 2021-03-04 10:04
你的代码中问题
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; 

}
全部回答
  • 1楼网友:洎扰庸人
  • 2021-03-04 15:19
#include using namespace std; void main() { float f; cout<<"输入摄氏温度"< cin>>f; cout<<"输出华氏温度为:"< cout<<(f*9.0f/5.0f)+32.0f< } vs 2005调试通过
  • 2楼网友:污到你湿
  • 2021-03-04 14:16
注意你算式里的5/9,它的除数和被除数都是整型,所以表示整除,5整除9等于0,所以得到的值为0。 要控制精确度,可以使用printf,要精确两位就是printf("%.2llf",c);
  • 3楼网友:轮獄道
  • 2021-03-04 12:54
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; 这个接口是否有四舍五入的设计 我不太清楚 你需要自己测试一下
  • 4楼网友:逃夭
  • 2021-03-04 11:26
#include <iomanip.h> c = 5*1.0 / 9* (f - 32); cout.precision(3); cout << "相应华氏温度为:" << c;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯