林惜城


私信TA

用户名:reminder

访问量:31284

签 名:

等  级
排  名 91
经  验 9070
参赛次数 0
文章发表 95
年  龄 0
在职情况 学生
学  校 西安电子科技大学
专  业

  自我简介:

哈姆


解题思路:

(1)题目把输入的格式做了很严格的限制,所以直接按照 cin >> num1 >> op1 >> num2 >> op2 >> res 的格式读输入就行了。

(2)res 是字符串,因为可能不止一位数,因此需要用 stoi() 函数转成 int。

(3)测试用例自带文件结束符,自己输入的话要加 ctrl + z 来结束。


注意事项:

没啥好注意的,题目已经限制死了“格式保证符合上述规定,且不包含任何空白字符。输入的所有整数均不含前导0”,所以没必要做异常处理。


参考代码:

// 题目 1073: 弟弟的作业
#include <iostream>
#include <cstring>

using namespace std;

// 测试用例自带文件结束符,自己输入的话要 ctrl + z
int main() {
	int num1, num2, resNum; // 两个数字和转化为整数的结果
	char op1, op2;          // 运算符,op2 必定是'='
	string res;             // 可能是两位数或三位数,不能用char
	int correct = 0;        // 答对的数量
	while (cin >> num1 >> op1 >> num2 >> op2 >> res) {
		if (res != "?") {
			resNum = stoi(res); // string 转 int,如果是 char 转 int 就用 atoi()
			if (op1 == '+') {
				if (num1 + num2 == resNum) {
					++correct;
				}
			} else {
				if (num1 - num2 == resNum) {
					++correct;
				}
			}
		}
	}
	cout << correct << endl;
	return 0;
}


 

0.0分

4 人评分

  评论区

  • «
  • »