#include <iostream>
#include <cmath>
using namespace std;
double calculate(double a, double b, char op) {
switch(op) {
case '+': return a + b;
case '-': return a - b;
case '*': return a * b;
case '/':
if (b != 0) return a / b;
cerr << "错误:除数不能为0!";
return NAN;
case '^': return pow(a, b);
default:
cerr << "错误:无效运算符!";
return NAN;
}
}
int main() {
double num1, num2;
char op, choice;
do {
cout << "\n输入算式 (例:2 + 3): ";
cin >> num1 >> op >> num2;
double result = calculate(num1, num2, op);
if (!isnan(result)) {
cout << "结果: " << num1 << " " << op << " " << num2
<< " = " << result << endl;
}
cout << "继续计算?(y/n): ";
cin >> choice;
} while(tolower(choice) == 'y');
cout << "感谢使用计算器!" << endl;
return 0;
}