原题链接:弟弟的作业
解题思路:
直接将计算表达式当作字符串输入,读取出a,b,c的值。判断即可。
在字符串中a的分界是+或者-;使用string中的find_first_of函数,找到第一个出现+、-的位置
string各个函数的用法,参考:string - C++ Reference (cplusplus.com)
找到了分隔位置,那么就需要分割字符串然后将字符串转换成整数
substr函数用来分割
我们自定义一个字符串转换成整型的函数,具体参考代码。
注意包含头文件#include <sstream>
参考代码:
#include <iostream> #include <cstring> #include <string> #include <cmath> #include <algorithm> #include <vector> #include <string.h> #include <sstream> int toint(string str) { int ret; stringstream stream(str); stream >> ret; return ret; } void test_1073() { string str; int sum=0; while(cin>>str) { int a,b,c,pos1,pos2; pos1=str.find_first_of("+-"); pos2=str.find_first_of("="); a=toint(str.substr(0,pos1)); b=toint(str.substr(pos1+1,pos2)); c=toint(str.substr(pos2+1)); if(str[pos1]=='+') { if(a+b==c) { sum++; } } else { if(a-b==c) { sum++; } } } cout<<sum<<endl; } int main() { test_1073(); return 0; }
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复