2017-08-25 25 views
-8
#include <iostream> 

using namespace std; 

int start() { 
    cout << "Guess the hidden number [1,500]" << endl; 
    int const hidden_number = 50; 
    return (hidden_number); 
} 

int main() { 
    start();       // trying to use functions 
    int guess; 

    for (int gss = 0; gss >0; gss++) //formula for a factorial 
    { 
     cin >> guess; 
     if (guess < hidden_number) {  //hidden number is undefined somehow 
      cout << "guess higher" << endl; 
     } 

     if (guess > hidden_number) { 
      cout << "guess lower" << endl; 
     } 

     if (guess == hidden_number) { 
      cout << "congrats it took you " << gss << " guesses" << endl; 
      break; 
     } 
    } 

    int Itemp; 
    cin >> Itemp; 

    return 0; 
} 
+3

因爲它是'start'函數的局部變量。 –

+1

閱讀您最喜愛的C++書中的範圍。 – molbdnilo

+1

'return'不會做你認爲的事 – Fureeish

回答

3

start()返回一個變量。你需要在你的main中爲它分配一個新的變量。

int x = start(); 
+0

嘿,我明白了,但現在糾正後,程序輸入一個數字後自動關閉。 –

3

定義的範圍僅在函數內部。運行一次並不會使調用功能 - 主 - 記住它。你可以把它在一個變量,雖然與現有的代碼存儲:

int hidden_number = start(); 
1

hidden_number是啓動功能的局部變量。開始將返回隱藏號碼(50)的,但是它的本地名稱不會與其一起移動。你必須開始函數的結果分配給一個變量在您的通話功能:

int number = start(); 

然後在main你就可以使用的名稱爲「數字」的值(50)。

+0

謝謝,我明白更清楚,但現在我輸入一個數字的時候,程序立即關閉?? –

相關問題