题目来源:https://www.dotcpp.com/oj/problem1073.html
思路分析:难点在于格式读入处理
我选择的是int char int = char []的形式
#include <bits/stdc++.h>
using namespace std;
int num=0;
int transformation(char d[4])//将字符数组转换成数字判断
{
if(d[0]!='-')
{
if(strlen(d)==3)
{
return (d[0]-'0')*100+(d[1]-'0')*10+d[2]-'0';
}
if(strlen(d)==2)
{
return (d[0]-'0')*10+(d[1]-'0');
}
if(strlen(d)==1)
{
return (d[0]-'0');
}
}
else
{
if(strlen(d)==4)
{
return -(d[1]-'0')*100+(d[2]-'0')*10+d[3]-'0';
}
if(strlen(d)==3)
{
return -(d[1]-'0')*10+(d[2]-'0');
}
if(strlen(d)==2)
{
return -(d[1]-'0');
}
}
}
int main()
{
int a,b;
char c;
char d[4]= {0};
while(scanf("%d%c%d=%s",&a,&c,&b,d)!=EOF)
{
if(d[0]=='?')//如果该题不会做 直接跳过
continue;
if(c=='+')
{
if(a+b==transformation(d))
num++;
}
if(c=='-')
{
if(a-b==transformation(d))
num++;
}
}
cout<<num<<endl;
}