2016-11-11 106 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) 
{ 

//... 

這應該是足夠讓你接近答案。