C++ C++;Switch语句中的数学

C++ C++;Switch语句中的数学,c++,math,C++,Math,所以我想做一个简单的数学方程,它打印一个菜单,然后将操作符作为char输入。然后,它会提示用户输入两个数字,然后打印生成的问题,然后以如下格式回答:10+20=30 #include <iostream> #include <cstdio> using namespace std; int main() { //Variables char op_choice; int usrnum_1; int usrnum_2; //Me

所以我想做一个简单的数学方程,它打印一个菜单,然后将操作符作为
char
输入。然后,它会提示用户输入两个数字,然后打印生成的问题,然后以如下格式回答:
10+20=30

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    //Variables
    char op_choice;
    int usrnum_1;
    int usrnum_2;

    //Menu
    cout << "Operator Menu\n\n";
    cout << "+\n";
    cout << "-\n";
    cout << "*\n";
    cout << "/\n";
    cout << "%\n\n";

    cout << "Choice:";
    cin >> op_choice;
    cout << "\nNumbers:";
    cout << "\n\nEnter TWO numbers to complete an arithmitic operation with the " << op_choice << " operator: \n";
    cout << "eg: 1 + 2 = 3\n";
    cout << "\nNumber 1: ";
    cin >> usrnum_1;
    cout << "Number 2: ";
    cin >> usrnum_2;

    switch (op_choice)
    {
        case '+':
            break;
        case '-':
            cout << "\nYou picked " << usrnum_1 << " - " << usrnum_2 << " = ";
            cout << usrnum_1 - usrnum_2;
            break;
        case '*':
            cout << "\nYou picked " << usrnum_1 << " X " << usrnum_2 << " = ";
            cout << usrnum_1 * usrnum_2;
            break;
        case '/':
            cout << "\nYou picked " << usrnum_1 << " / " << usrnum_2 << " = ";
            cout << usrnum_1 / usrnum_2;
            break;
        case '%':
            cout << "\nYou picked " << usrnum_1 << " % " << usrnum_2 << " = ";
            cout << usrnum_1 % usrnum_2;
            break;
        default:
            cout << "\nYou made an illegal choice.\n";
    }

    cout << "\nYou picked " << usrnum_1 << " " <<  op_choice << " " <<  usrnum_2 << " = ";
    cout << usrnum_1 << op_choice << usrnum_2;

    getchar();
    return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
//变数
字符选择;
int usrnum_1;
国际大学2;
//菜单

首先,
switch
是这类代码的最佳代码结构

问题在于,您对通用输出的概念

cout << usrnum_1 << op_choice << usrnum_2;

为什么不使用一个变量来存储答案呢?您已经存储了运算符字符和用户输入的值。在switch语句中,只需执行计算并存储值,然后在最后仅使用一个cout打印出来。您的意思是要在
开关之外打印数学运算的结果?将其存储在变量中并打印如何?其他注释的更一般表述:将结果的计算与结果的显示分开。为了得到一个好的问题(以便我可以向上投票),您应该澄清“不起作用”的含义,即预期和实际输出是什么。有关详细信息,请参阅。
cout << usrnum_1 + usrnum_2;
int result;

switch (op_choice)
{
    case '+':
        result = usrnum_1 + usrnum_2;
        break;
    case '-':
        result = usrnum_1 - usrnum_2;
        break;
    case '*':
        result = usrnum_1 * usrnum_2;
        break;
    case '/':
        result = usrnum_1 / usrnum_2;
        break;
    case '%':
        result = usrnum_1 % usrnum_2;
        break;
    default:
        cout << "\nYou made an illegal choice.\n";
        return 1;
}

cout << "\nYou picked " << usrnum_1 << " " <<  op_choice << " " <<  usrnum_2 << " = ";
cout << result;