c++关于实现计算器

img

img

img


输入两个整数a和b,及+,-,,/中的任意一字符。根据输入字符对整数a和b做相应的算术运算,如输入+,程序就给出a与b之和,输入-,就给出a和b之差,输入,就给出a和b的乘积,输入/,就给出a与b的商。若输入其他字符,则提示输入错误。

记得采纳哦

#include <iostream>
using namespace std;
int main() {
    char op;    // 操作符
    double num1, num2;    // 操作数
    cout << "请输入一个运算表达式(如1+2):";
    cin >> num1 >> op >> num2;
    switch (op) {
        case '+':
            cout << num1 + num2 << endl;
            break;
        case '-':
            cout << num1 - num2 << endl;
            break;
        case '*':
            cout << num1 * num2 << endl;
            break;
        case '/':
            if (num2 == 0) {
                cout << "除数不能为0" << endl;
            } else {
                cout << num1 / num2 << endl;
            }
            break;
        default:
            cout << "无效的操作符" << endl;
            break;
    }
    return 0;
}


这题目应该有问题
int calc(int x, int y, int (*p)(int, int)); 的参数没必要,这里可以把参数当做内部变量使用。


#include <stdio.h>
int calc(int x, int y, int (*p)(int, int));
int add(int x, int y);
int sub(int x, int y);

int main()
{
    int (*p)(int, int) = NULL;
    int a = 0, b = 0;
    calc(a, b, p);

    return 0;
}

int calc(int x, int y, int (*p)(int, int))
{
    int r = 0;
    char c;
    scanf("%d%c%d", &x, &c, &y);
    switch (c)
    {
    case '+':
        p = add;
        break;

    case '-':
        p = sub;
        break;
        // 其他一样
    }
    if (p)
    {
        r = p(x, y);
        printf("%d\n", r);
    }
    else
        printf("Error!\n");

    return r;
}

int add(int x, int y)
{
    return x + y;
}

int sub(int x, int y)
{
    return x - y;
}

【以下回答由 GPT 生成】

问题标题: 如何用C++实现一个计算器?

问题内容: 我希望用C++编写一个计算器程序,能够执行基本的算术运算。程序应该接受两个整数a和b,以及运算符号+-*/的输入。根据输入的运算符号,对a和b进行相应的算术运算。例如,如果输入+,程序应该输出a和b的和;如果输入-,程序应该输出a和b的差;如果输入*,程序应该输出a和b的乘积;如果输入/,程序应该输出a和b的商。如果输入其他字符,则程序应该提示输入错误。

请你以清晰易懂的语言,给出一个实现该计算器的具体方案。

回答

可以使用C++编写一个函数来实现这个计算器程序。以下是一个实现的示例代码:

#include <iostream>
using namespace std;

int calculate(int a, int b, char operation) {
    int result;
    switch(operation) {
        case '+':
            result = a + b;
            break;
        case '-':
            result = a - b;
            break;
        case '*':
            result = a * b;
            break;
        case '/':
            if(b != 0) {
                result = a / b;
            }
            else {
                cout << "除数不能为0" << endl;
                return 0;
            }
            break;
        default:
            cout << "输入错误" << endl;
            return 0;
    }

    return result;
}

int main() {
    int a, b;
    char operation;

    cout << "请输入第一个整数: ";
    cin >> a;

    cout << "请输入第二个整数: ";
    cin >> b;

    cout << "请输入一个运算符号(+, -, *, /): ";
    cin >> operation;

    int result = calculate(a, b, operation);
    cout << "结果: " << result << endl;

    return 0;
}

使用上面的代码,你可以按照以下步骤实现一个计算器程序:

  1. 创建一个名为calculate的函数,接受两个整数ab,以及一个字符operation作为参数。该函数用于执行基本的算术运算,并返回运算结果。

  2. calculate函数内部,使用switch语句根据operation的值执行相应的算术运算。对于加法、减法和乘法,直接执行相应的操作并保存结果。对于除法,需要增加对除数为0的检查,避免除以0的错误。

  3. default分支中,当输入的operation不是有效的运算符号时,输出错误提示信息并返回0。

  4. main函数中,定义变量aboperation,分别用于保存输入的两个整数和运算符号。

  5. 输出提示信息,依次输入第一个整数a、第二个整数b和运算符号operation

  6. 调用calculate函数,并将输入的aboperation作为参数传递进去。将返回的结果保存在变量result中。

  7. 输出结果。

这样,你就可以使用C++编写一个简单的计算器程序了。请注意,上述示例代码对除数为0的情况进行了检查,并给出了相应的提示信息。根据实际需求,你可以根据需要对代码进行修改和扩展。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^