ChatAI 智能内容创作平台

登录

超智能内容创作平台,AI绘画、写文章、写策划、写文案、写代码,回答你所有问题

更原创、更完整、更智能

免费试用 Pro 版
联系客服

联系客服为您打造专属AI系统

绘图
发送
AI思考中...
" 二哥,你可以使用C++编写一个简单的计算器程序,该程序可以接受用户输入的表达式,并计算其结果。以下是一个基本的C++程序,可以实现这个功能: ```c++ #include <iostream> #include <string> #include <stack> #include <map> using namespace std; int main() { string expression; cout << "请输入一个表达式: "; getline(cin, expression); stack<double> nums; // 用于存储数字的栈 stack<char> ops; // 用于存储操作符的栈 map<char, int> precedence = { {'+', 1}, {'-', 1}, {'*', 2}, {'/', 2}, }; for (size_t i = 0; i < expression.size(); i++) { char c = expression[i]; if (isdigit(c)) { // 如果是数字 double num = c - '0'; while (i + 1 < expression.size() && isdigit(expression[i + 1])) { num = num * 10 + (expression[++i] - '0'); } nums.push(num); } else if (isalpha(c)) { // 如果是变量 double num = 0; while (i + 1 < expression.size() && isalpha(expression[i + 1])) { num = num * 26 + (expression[++i] - 'a') + 1; } nums.push(num); } else if (c == '(') { // 如果是左括号 ops.push(c); } else if (c == ')') { // 如果是右括号 while (!ops.empty() && ops.top() != '(') { double b = nums.top(); nums.pop(); double a = nums.top(); nums.pop(); nums.push(apply_operator(ops.top(), a, b)); ops.pop(); } if (ops.empty() || ops.top() != '(') { cout << "表达式错误!" << endl; return 1; } ops.pop(); } else { // 如果是操作符 while (!ops.empty() && precedence[ops.top()] >= precedence[c]) { double b = nums.top(); nums.pop(); double a = nums.top(); nums.pop(); nums.push(apply_operator(ops.top(), a, b)); ops.pop(); } ops.push(c); } } while (!ops.empty()) { double b = nums.top(); nums.pop(); double a = nums.top(); nums.pop(); nums.push(apply_operator(ops.top(), a, b)); ops.pop(); } cout << "结果为: " << nums.top() << endl; return 0; } double apply_operator(char op, double a, double b) { switch (op) { case '+': return a + b; case '-': return a - b; case '*': return a * b; case '/': return a / b; default: return 0; } } ``` 这个程序首先接受用户输入的表达式,然后使用两个栈来存储数字和操作符。程序使用一个map来存储操作符的优先级。然后,程序遍历表达式,根据不同的字符进行相应的操作。如果是数字或变量,就将其压入数字栈;如果是左括号,就将其压入操作符栈;如果是右括号,就将操作符栈中的操作符依次弹出并计算,直到遇到左括号为止;如果是操作符,就将其压入操作符栈,并在需要的时候弹出栈顶的操作符进行计算。最后,程序弹出栈中的所有操作符并进行计算,输出结果。"

ChatAI 智能内容创作平台

内容数
浏览数
用户数
微信扫一扫
二维码失效
点击刷新
微信扫码登录/注册
首次扫码关注公众号后将自动注册新账号
请使用 Pro 版以继续
绘图功能及更多问答次数,请前往Pro版继续免费试用。
免费试用 Pro 版
取消
添加联系客服
服务时间:早上 9:00 - 22:00