解题思路:用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 人评分
A+B for Input-Output Practice (C++代码)浏览:632 |
c primer plus 第十二章 12.1小节浏览:400 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:783 |
Pascal三角 (C语言代码)浏览:1252 |
字符串比较 (C语言代码)答案错误????浏览:641 |
【偶数求和】 (C语言代码)浏览:588 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:468 |
剪刀石头布 (C++代码)浏览:1811 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:725 |
C语言程序设计教程(第三版)课后习题10.7 (用指针求解)浏览:1542 |