用户输入请求两次

时间:2016-11-11 05:09:11

标签: c++

更新:已回复!谢谢,@ 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();

并且“双fahr​​enheit = getFahrenheit();”在这个函数中的行:

double calcCelsius()
{
    double fahrenheit = getFahrenheit();
    double celsiusTemp = 5.0 / 9.0 * (fahrenheit - 32.0);
    return celsiusTemp;
}

但是,我再也无法弄清楚如何编写这个并且仍然具有功能构建,同时保持我的教师要求的结构。真的在这一章中苦苦挣扎!

1 个答案:

答案 0 :(得分:1)

正如您所指出的,问题是您拨打getFahrenheit()两次。 (实际上问题是“我不知道我在做什么”,但让我们对此有所了解。)一个解决方案是将fahrenheit作为calcCelsius()的参数,所以我们得到:

double calcCelsius(double fahrenheit);

//...

    celsius = calcCelsius(fahrenheit);

//...

double calcCelsius(double fahrenheit)
{

//...

这应该足以让你接近答案了。