#include <iostream>
#include <cassert>
// 加法函数
double add(double a, double b) {
return a + b;
}
// 减法函数
double subtract(double a, double b) {
return a - b;
}
// 乘法函数
double multiply(double a, double b) {
return a * b;
}
// 除法函数
double divide(double a, double b) {
assert(b != 0);
return a / b;
}
int main() {
// 定义函数指针类型
using MathOp = double(*)(double, double);
// 定义函数指针数组并初始化
MathOp operations[4] = {add, subtract, multiply, divide};
// 获取用户输入
char op;
double num1, num2;
std::cout << "请输入操作符 (+, -, *, /): ";
std::cin >> op;
std::cout << "请输入两个数字: ";
std::cin >> num1 >> num2;
// 根据操作符调用相应函数
double result;
switch (op) {
case '+':
result = operations[0](num1, num2);
break;
case '-':
result = operations[1](num1, num2);
break;
case '*':
result = operations[2](num1, num2);
break;
case '/':
result = operations[3](num1, num2);
break;
default:
std::cout << "无效的操作符" << std::endl;
return 1;
}
// 输出结果
std::cout << "结果是: " << result << std::endl;
return 0;
}