Mike


私信TA

用户名:MikeJohnson

访问量:1047

签 名:

等  级
排  名 3646
经  验 1879
参赛次数 0
文章发表 15
年  龄 0
在职情况 学生
学  校 ustc
专  业 自动化

  自我简介:

业余选手

解题思路:用while循环读取输入的算式,直到读取到空行,查找并记录运算符‘+’或者‘-’以及‘=’

在字符串s中的位置,通过这两个位置,对字符串进行切片操作,最后进行判断。

注意事项: 运用到了#include<string>中的stoi()函数,用于将字符串,如“123”转换为int型123。

参考代码:

#include<iostream>
using namespace std;
#include<string>

int main()
{
	string s;
	int count = 0;
	while (getline(cin, s))
	{
		if (s.empty())
		{
			break;
		}
		else
		{
			int len = s.size();
			//a用于存储第一个数,b用于存储第二个数,
			// sum用于存储弟弟的运算结果(以字符串形式存储);
			string a, b, sum;
			int op = 0, eq = 0;
			//查找并获得运算符的位置;
			for (int i = 0; i < len; i++)
			{
				if (s[i] == '+' || s[i] == '-')
				{
					op = i;
				}
				if (s[i] == '=')
				{
					eq = i;
				}
			}
			//通过运算符的位置对原字符串进行切片;
			for (int i = 0; i < op; i++)
			{
				a.push_back(s[i]);
			}
			for (int i = op + 1; i < eq; i++)
			{
				b.push_back(s[i]);
			}
			for (int i = eq + 1; i < len; i++)
			{
				sum.push_back(s[i]);
			}
			//按要求进行判断;
			if (sum != "?")
			{
				if (s[op] == '+' && (stoi(a) + stoi(b) == stoi(sum)))
				{
					count++;
				}
				else if (s[op] == '-' && (stoi(a) - stoi(b) == stoi(sum)))
				{
					count++;
				}
			}
		}
	}
	cout << count << endl;
	return 0;
}


 

0.0分

1 人评分

  评论区

  • «
  • »