原题链接:弟弟的作业
解题思路:
(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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复