Я создаю меню для школьного проекта, и предполагается, что меню будет работать непрерывно до тех пор, пока пользователь не выберет выбор выхода, но проблема в том, что если пользователь выбирает опцию после другой опции, он добавляет значение предыдущей опциина текущий и продолжает повторяться.Единственный способ получить правильные значения, если опция запускается первой.Итак, я хочу знать, есть ли способ заставить переменную не сохранять ее значение
int main()
{
int choice, sum = 0, n, num, count = 0, a;
do {
cout << "1. Sum of first 10 natural numbers" << endl;
cout << "2. Sum of n natural numbers" << endl;
cout << "3. Prime number check" << endl;
cout << "4. Exit" << endl;
cout << "Enter your choice" << endl;
cin >> choice;
switch (choice)
{
case 1: {
for (int i = 1; i <= 10; ++i) {
sum += i;
}
cout << "Sum of first 10 natural numbers =" << sum << endl;
break;
}
case 2: {
cout << "Enter a positive integer: ";
cin >> n;
for (int i = 1; i <= n; ++i) {
sum += i;
}
cout << "Sum of first " << n << "natural numbers =" << sum << endl;
break;
}
case 3: {
cout << "Enter number to be checked : ";
cin >> num;
if (num == 0 || num < 0) {
cout << "\n" << num << " is not prime." << endl;
}
else {
for (a = 2; a < num; a++)
if (num % a == 0)
count++;
}
if (count > 1)
cout << "\n" << num << " is not prime." << endl;
else
cout << "\n" << num << " is prime." << endl;
break;
}
}
} while (choice < 4);
}
, поэтому, если я выберу опцию 2 и введу 5, код выдаст правильный ответ как 15, но если я выберу опцию 2и снова введите 5, получится 30, а если я сделаю это снова, то получится 45. То же самое касается и другого.Добавляет предыдущий результат к текущему.