原题链接:弟弟的作业
解题思路:
(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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复