ошибка экспоненциального калькулятора c ++ - PullRequest
0 голосов
/ 26 мая 2018

Я новичок в программировании, и я бросил себе вызов, сделав калькулятор, но когда я хочу использовать экспоненциальный режим более одного раза, он складывает экспоненты вместо перезапуска всего, любой может помочь мне, пожалуйста?Также, если у вас есть несколько советов для будущих проектов для начинающих или у вас есть несколько советов, пожалуйста, поделитесь ими со мной, большое спасибо!:) Вот мой код:

int main()
{
long double num1,num2,result;
char op,redo;
result = 1;
do
{
    cout << "Give the operation! (e.g.: 2+3) aviable: + - * / ^" << endl;
    cin >> num1 >> op >> num2;
    if (op == '+' || '-' || '*' || '/' || '^') 
    {
        switch (op)
        {
            case '+':
                cout << endl << "Your solution is:" << num1 + num2;
                break;

            case '-':
                cout << endl << "Your solution is:" << num1 - num2;
                break;

            case '*':
                cout << endl << "Your solution is:" << num1 * num2;
                break;

            case '/':
                if (num2 != 0)
                {
                    cout << endl << "Your solution is:" << num1 / num2;
                }
                else
                {
                    cout << endl << "We cannot devide by 0!";
                }
                break;

            case '^':
                while (num2 != 0) {
                    result *= num1;
                    --num2;
                }

                cout << "Your solution is:" << result;
                break;

            default:
                cout << "This operation cannot be processed!";
                break;

        }
    }
    else
    {
        cout << "Wrong operation!";
    }

    cout << endl << "Would you like to restart? [Y/N]" << endl;
    cin >> redo;
} while (redo == 'y' || redo == 'Y');


return 0;
}

1 Ответ

0 голосов
/ 26 мая 2018

Вам необходимо сбрасывать result каждый раз перед входом в цикл:

case '^':
   result = 1;                // <--- add this
   while (num2 != 0) {
       result *= num1;
       --num2;
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...