更新:已回复!谢谢,@ Ken Y-N我真的很感谢你的帮助!!
免责声明:我是第一学期的c ++学生,我不知道自己在做什么,而且我的课本也让人感到困惑。此外,代码的样式对于给定的赋值是强制性的。请继续这些知识!
OP:我有一个将华氏温度转换为摄氏温度并显示摄氏温度的代码。但是,它要求华氏两次输入。我已经尝试改变我能想到的地方的代码(以及其他线程中推荐的地方),但它要么不能解决问题,要么导致其他错误并且不会正确构建。 提前感谢您的帮助,这是我最新功能构建的代码:
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
//declare function prototypes
double getFahrenheit();
double calcCelsius();
int main()
{
double fahrenheit = 0.0;
double celsius = 0.0;
//call getFahrenheit function
fahrenheit = getFahrenheit();
//call calcCelsius function
celsius = calcCelsius();
//display temperature in degrees celsius
cout << "The temperature is: " << celsius << endl;
return 0;
} //end of main function
double getFahrenheit()
{
double fahrenheitTemp = 0.0;
cout << "Enter temperature in Fahrenheit: " << endl;
cin >> fahrenheitTemp;
return fahrenheitTemp;
}
double calcCelsius()
{
double fahrenheit = getFahrenheit();
double celsiusTemp = 5.0 / 9.0 * (fahrenheit - 32.0);
return celsiusTemp;
}
我认为错误与:
有关//call getFahrenheit function
fahrenheit = getFahrenheit();
并且“双fahrenheit = getFahrenheit();”在这个函数中的行:
double calcCelsius()
{
double fahrenheit = getFahrenheit();
double celsiusTemp = 5.0 / 9.0 * (fahrenheit - 32.0);
return celsiusTemp;
}
但是,我再也无法弄清楚如何编写这个并且仍然具有功能构建,同时保持我的教师要求的结构。真的在这一章中苦苦挣扎!
答案 0 :(得分:1)
正如您所指出的,问题是您拨打getFahrenheit()
两次。 (实际上问题是“我不知道我在做什么”,但让我们对此有所了解。)一个解决方案是将fahrenheit
作为calcCelsius()
的参数,所以我们得到:
double calcCelsius(double fahrenheit);
//...
celsius = calcCelsius(fahrenheit);
//...
double calcCelsius(double fahrenheit)
{
//...
这应该足以让你接近答案了。