解题思路:

(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.0分

4 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论