文章

25

粉丝

0

获赞

74

访问

2.6k

头像
计算表达式 题解:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	ios::sync_with_stdio(0); cin.tie(0);
	string s;
	
	while(cin >> s)
	{
		vector<char> op;  //建立一个操作符的数组
		vector<int> nums; //记录运算数组
		int num = 0;
		for(int i = 0; i < s.size(); i ++)
		{
			if(s[i] >= '0' && s[i] <= '9')
			{
				num = num * 10 + (s[i] - '0');
			}
			else{
				nums.push_back(num);
				op.push_back(s[i]);
				num = 0;
			}
		}              //这一个for循环就是把字符串里边数字和操作符拆分开来
		nums.push_back(num);//自己写这里忘记了,一定要记得最后一个数字不会进else
		
		int total = 0;
		for(int i = 0; i < op.size(); i ++)
		{
			if(op[i] == '*')
			{
				int num = nums[i] * nums[i + 1];
				nums[i] = num;
				op.erase(op.begin() + i);
				nums.erase(nums.begin() + i + 1);
				
				i--; //我去非常重要,记得重新判断本位置
				continue;
			}
			
			else if(op[i] == '/')
			{
				int num = nums[i] / nums[i + 1];
				nums[i] = num;
				op.erase(op.begin() + i);
				nums.erase(nums.beg...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发