Я создаю программу, которая запрашивает у пользователя два рациональных числа, и в зависимости от того, выберет ли пользователь сложение или вычитание, моя программа выполнит задачу и затем должна будет продолжить сложение, вычитание или выход.
Пока что большая часть моего кодирования выполнена, но у меня проблема с написанием флага, управляемого l oop. Для моей программы появится меню шоу, которое спросит пользователя, хотят ли они вычесть, добавить или выйти.
Если пользователь решит добавить, экран очистится, и в верхней части должен появиться заголовок с надписью «Добавление рациональных чисел». Этот заголовок должен появляться только один раз, и после этого моя программа попросит пользователя ввести рациональное число.
Поскольку предполагается, что программа добавляет два рациональных числа, после того, как пользователь введет первое рациональное число, моя программа попросит пользователя ввести другое рациональное число.
Итак, моя программа задаст вопрос два раза.
Вопрос: Проблема, с которой я столкнулся, заключается в том, что, как только появляется заголовок «Добавление рациональных чисел», и моя программа запрашивает у пользователя номер во второй раз, заголовок появляется снова. Я пытался использовать флаг l oop, контролируемый флагом, но независимо от того, что я пробовал, он будет либо пропустить заголовок, либо повторять его каждый раз, когда задают вопрос. Ниже приведен код, на который я ссылаюсь:
void GetRational(char state, int& num, int& den)
{
char c;
bool once;
once = true;
while (once)
{
if (state == 'A' || state == 'a')
{
cout << "Addition of rational numbers" << endl;
once = false;
}
else if (state == 'S' || state == 's')
{
cout << "Subtraction of rational numbers" << endl;
once = true;
}
else break;
}
while (1)
{
cout << "\nPlease enter a fraction (n/d): ";
cin >> num >> c >> den;
if (den == 0)
cout << "\nDenominator must not be 0";
else break;
}
}