2016-12-02 23 views
-5

私は単純な乱数推測ゲームを作っています(下の例を参照)。推測が数字よりも高くなるまで完全に動作します。それが起こると、「私の数字はそれよりも低いです。私の数字はそれよりも高い」「私の数字はそれよりも低い」という文字を印刷することになっています。なぜ私のif elseコードは動作しませんか?

#include <iostream> 
#include <unistd.h> 
#include <cstdlib> 

int main() { 
    int highnum; 
    int guess; 
    srand(time(0)); 
    std::cout << "Pick a number greater than 2"; 
    std::cin >> highnum; 
    int randynumeber = (rand() % highnum) + 1; 
    std::cout << "I have picked a random number between 1 and " << highnum << " which you need to try and guess"; 
    int guesses = 0; 
    int stop = 0; 

    while (guess != randynumeber) 
     { 
      if (stop == 0) 
       { 
        sleep(0.1); 
        stop = 1; 
        std::cout << std::endl << "Guess a number"; 
        std::cin >> guess; 
        if(guess>randynumeber) 
         std::cout << "My number is lower than that"; 
        else if(guess<randynumeber) 
         std::cout << "My number is higher than that"; 
        stop = 0; 
       }  
     } 
    std::cout << std::endl << "guesses = " << guesses; 
    std::cout << "You win!"; 
} 
+0

あなたの質問にコードを投稿してください。 – RedX

+0

コードのリンクを投稿しないでください。リンクは死ぬ。 – csmckelvey

+0

'std :: cout <<"私の数値はそれよりも高いです; ";は条件がないので常に出力されます(' else 'または' else else 'に注意してください。 argsはありません)。また、「やめろ」とは何を期待していますか?そしてあなたは推測を増やしていません。 – George

答えて

0

は、あなたが他のステートメントに条件をテストされていません:あなたは正しい答えを推測する際にも、それがある

マイコード「私の数がより高くなる」印刷します。テストする必要がある場合は、それ以外の場合は(guess < randynumeber);を実行します。ロジックの答えが返され、次のコードが実行されます。次のコードはcoutです。

+0

私はちょっと自分のコードを変更しましたが、あなたが言っていることは得られません。どうすればテストできますか? – MrSam123

+0

質問のコードは、この回答を投稿したときに見たものと異なりますか?私はオフサイトのリンクからコピーしました。 – Barmar

+0

はい、それは変更されたようです - それ以上の答えは、else条件のテストが欠落していることを示します – adrianmcmenamin

関連する問題