2015-10-22 5 views
0
#include <iostream> 
#include <cmath> 
#include <ctime> 
#include <cstdlib> 
using namespace std; 

int main() 
{ 
    int number1; 
    int number2; 
    int answer; 
    srand(time(0)); 
    number1= rand()%10+1; 
    number2= rand()%10+1; 
    cout<< number1 <<" + " << number2 << endl; 

    cin>> answer; 

    if(number1 + number2 == answer) { 
     cout << "correct"<< endl; 

    } 
    else { 
     cout << "Incorrect" << endl; 
     cout << "Answer:" << number1 + number2; 
    } 

    while(number1+number2==answer) { 

    } 
    return 0; 
} 

Я пытаюсь создать программу, которая задает пользователю простой математический вопрос. На этом последнем этапе пользователь должен ответить на три вопроса правильно, а затем цикл закончится.Как ограничить количество циклов цикла while? C++

Если пользователь отвечает неправильно, цикл будет продолжен. Мой вопрос: как я могу это сделать? Я смущен тем, как настроить цикл, чтобы программа работала правильно.

+0

Вы хотите задать все три вопроса, а затем решить, следует ли продолжать, или вы хотите быстро провал подхода, в котором неправильный ответ будет reprompt пользователя с тем же вопросом ? –

+0

Пользователь ответит на один вопрос. Если это будет правильно, будет следовать другой вопрос. Однако, если неправильно, пользователю будет задан другой вопрос. – Brandon

+0

Вы никогда не отвечали на мой вопрос. Если пользователь отвечает неправильно, он снова запрашивается с вопросом _same_ или он переходит к вопросу _next_? –

ответ

1

Вы должны добавить счетчик переменной

например: INT кол = 0;

Когда переменная счетчик достигнет 3 выполнение перерыва заявления внутри цикла в то время как

Вы должны увеличивать значение переменного каждый раз, когда пользователь есть хороший ответ

1

Основываясь на ваш комментарии, вы должны имеют один цикл while, содержащий три вопроса, и счетчик для количества правильных ответов. Если пользователь правильно задает все три вопроса, вы можете выйти из цикла, иначе вы снова зададите все три вопроса. Так что-то подобное может работать для вас:

int total = 0; 

while (1) { 
    cin >> answer; 

    if (number1 + number2 == answer) { 
     cout << "correct"<< endl; 
     ++total; 
    } 
    else { 
     cout << "Incorrect." << endl; 
    } 

    // include two more questions with if and else statements 

    // check if all three answers correct 
    if (total == 3) { 
     cout << "You got every answer right!" << endl; 
     break; 
    } 
    else { 
     cout << "You got " << 3 - total << " questions wrong."; 
     total = 0; 
    } 
} 
+0

Я думаю, что так хорошо – HDJEMAI

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