2016-12-02 2 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 if' или просто 'else' с нет аргументов). Кроме того, что вы ожидаете от 'stop'? И вы не увеличиваете догадки. – George

ответ

0

Вы не проверочный заявление еще. Вам нужно протестировать его, иначе он просто выполняет (guess < randynumeber); - который дает логический ответ, а затем выполняет следующий фрагмент кода, который является следующим оператором cout.

+0

Я просто немного изменил свой код, но я не понимаю, что вы говорите, как его проверить? – MrSam123

+0

Является ли код в вопросе отличным от того, что вы видели, когда вы отправляли этот ответ? Я просто скопировал его из ссылки на внешнюю ссылку. – Barmar

+0

Да, похоже, что он был изменен - ​​ответ выше также относится к отсутствующему тесту в условии else – adrianmcmenamin

Смежные вопросы