我正在使用C ++在我的CS类中进行编程,这给了我一些问题。分配是编写一个程序,要求用户输入华氏温度。然后程序必须输出相当于该温度的摄氏度和接下来的20华氏温度的摄氏度。必须使用单独的函数完成转换计算以及函数原型。
除了我的Celsius输出都显示值为0之外,我得到了一切工作。我似乎无法找到任何错误或弄清楚有什么问题...请帮忙!
#include <iostream>
#include <iomanip>
using namespace std;
double Celsius(double temp);
int main() {
double fTemp, cTemp;
cout << "Please input a temperature in degrees Fahrenheit: ";
cin >> fTemp;
cout << "F Temp" << " " << "C Temp"<< endl;
cout << "-------------------" << endl;
for(int count=1; count<= 20; count++){
cTemp = Celsius(fTemp);
cout << setw(6) << fTemp << setw(12) << cTemp<< endl;
fTemp++;
}
return 0;
}
//*************Celsius Function****************//
double Celsius(double temp){
double newC;
newC = (temp-32) * (5/9);
return newC;
}
//************************************************
答案 0 :(得分:0)
(5/9)
是整数整数除法。您也可以在那里键入0
。将其替换为(5.0/9.0
),它应该没问题。
答案 1 :(得分:0)
可以简单地尝试(5.0 / 9.0)或通过执行类似
的操作来使用类型转换double Celsius(double temp){
double newC;
newC = (temp-32) * (float)5/9;
return newC;
}
因此,你的输出中不会得到直线0。