2017-01-24 10 views
-7
#include<iostream> 
#include<ctime> 
#include<cstdlib> 

using namespace std; 

int main(){ 
int gnumber, rnumber; 
    char choice; 
    int tries; 

    do { 
    cout << "Welcome to the Number Guessing Game!" << endl; 
    cout << endl; // breakline 
    cout << "How many tries: "; 
    cin >> tries; 
    cout << endl; 

    while (tries > 0){ 

    srand(time(NULL)); 
    rnumber = rand() % 99; 

    cout <<"Enter an integer greater than or equal to 0 and less than 100:"; 
    cin >> gnumber; 
    system("cls"); 

    if (tries != 1){ 
     if (gnumber < 100 && gnumber >= 0){ 

      if (gnumber == rnumber){ 
      cout << "Congratulations! You've guessed the number." << endl; 
      tries--; 
      cout << "Remaining tries: " << tries << endl; 
      } 

      else if (gnumber > rnumber){ 
       cout << "Your guess is higher than the number." << endl; 
       tries--; 
       cout << " Guess Again!" << endl; 
       cout << "Remaining tries: " << tries << endl; 
      } 
      else{ 
       cout << "Your guess is lower than the number." << endl; 
       tries--; 
       cout << " Guess Again!" << endl; 
       cout << "Remaining tries: " << tries << endl; 
      } 
     } 
     else 
     cout << "Must greater or equal to 0 and lesser than 100!" << endl; 
    } 
    else 
    { 
     cout << "Game over!" <<" The number is: " << rnumber << endl; 
     cout << "Play Again? (Y/N)" << endl; 
     cin >> choice; 
     system("cls"); 

    } 

    } 
    }while(choice == 'Y' || choice == 'y'); // 

    system("pause"); 
    return 0; 
    } 

ДАЖЕ ЕСЛИ Я ВХОДЯ ВЫБРАТЬ КАК «N» ИЛИ «НЕТ» ОСТАНОВИТЬ ЛОП. И даже если я вхожу в «Y» или «y», он не спрашивает, сколько попыток мне нужно. Вместо этого он просто спрашивает, какое целое число я хотел бы ввести. Попробуйте скопировать и скомпилировать код, чтобы лучше понять, в чем проблема. Пожалуйста помоги.C++ Do while loop condition не работает

PS: Это гадание программа, которую я делаю, кстати ...

+0

Вы пробовали выполнить свой код с помощью отладчика? –

+1

Это будет довольно хороший трюк для показанного кода, чтобы сделать что-либо в ответ на «Y», «y», «N» или «n», если в показанном коде нет ничего. Ваша проблема заключается в том, что ваш компьютер выполняет только то, что вы говорите, а не то, что вы хотите. –

+0

На самом деле это «Y» или «y» не «Y» или «y», потому что выбор объявляется как char, поэтому «Y» или «y» равно букве Y или y. – cringyfudge420

ответ

0

ошибка, во внутреннем контуре, если использование входит в значение, отличное от одного в другой не уменьшает tries так застрял:

else 
    { 
     cout << "Game over!" <<" The number is: " << rnumber << endl; 
     cout << "Play Again? (Y/N)" << endl; 
     cin >> choice; 
     system("cls"); 
     tries--; // add this 
    } 
+0

Он просто заканчивает программу, даже если вы выбрали Y или Y. – cringyfudge420

+0

Я пробовал, и он отлично работает – Raindrop7

+0

Он спрашивает, сколько попыток снова после того, как началось число попыток до 0? – cringyfudge420

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

  • Нет связанных вопросов^_^