2016-11-11 83 views
0

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

而“双华氏= getFahrenheit(); “行此功能:

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

此外,虽然,我无法弄清楚怎么回事,写这个,仍然有一个功能构建,同时保持我的老师要求严格的结构。真的很苦恼这一章!

+0

@Nicky C虽然我很欣赏你对你建议编辑的想法,但我有这样的理由来写我的问题: UPDATE部分让人们知道它何时被回答,因为他们似乎无法识别选择答案复选标记,并在帖子被回答后的几周内继续填充我的帐户。 免责声明部分是这样的,似乎认为知识是通过渗透收集(和评论等)的用户可以预先阅读,我是一个白痴新手学生没有代码请求帮助的背景,而不是程序员谁应该了解他的基本知识已经。 – CVHansen

回答

1

问题是,如您所识别的那样,您拨打getFahrenheit()两次。 (其实这个问题是“我不知道我在做什么”,但让我们掩饰这一点。)一个解决方案是让fahrenheit一个参数calcCelsius(),所以我们得到:

double calcCelsius(double fahrenheit); 

//... 

    celsius = calcCelsius(fahrenheit); 

//... 

double calcCelsius(double fahrenheit) 
{ 

//... 

这应该是足够让你接近答案。

相关问题