c++编写一个计算器程序,支持:+、-、*、/、!(阶乘)、x^y(xy)的混合运算。
时间: 2023-07-10 22:16:17 浏览: 198
多线程并发代码的IntelliJ IDEA中调试方法.docx
好的,下面是一个简单的 C++ 实现,支持 +、-、*、/、!和 x^y 的混合运算:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
// 计算阶乘
int factorial(int n) {
int res = 1;
for (int i = 1; i <= n; i++) {
res *= i;
}
return res;
}
int main() {
char op; // 操作符
double num1, num2, res; // 操作数和结果
cout << "请输入一个表达式:" << endl;
cin >> num1 >> op >> num2;
switch (op) {
case '+':
res = num1 + num2;
break;
case '-':
res = num1 - num2;
break;
case '*':
res = num1 * num2;
break;
case '/':
if (num2 == 0) {
cout << "除数不能为0" << endl;
return 0;
}
res = num1 / num2;
break;
case '!':
if (num1 < 0) {
cout << "不能求负数的阶乘" << endl;
return 0;
}
res = factorial((int)num1);
break;
case '^':
res = pow(num1, num2);
break;
default:
cout << "无效的操作符" << endl;
return 0;
}
cout << "结果是:" << res << endl;
return 0;
}
```
你可以运行程序,输入一个表达式进行计算,例如:
```
请输入一个表达式:
3^2
结果是:9
```
注意,这个实现并没有处理表达式中可能存在的括号、优先级等问题,仅支持两个数字的简单运算。如果你需要更复杂的功能,可以考虑使用第三方库或者自己实现一个简单的表达式解析器。
阅读全文