发现这题有毒。。。用sscanf会wa,但是学别人用atof直接转换为浮点数的话又可以AC。。。
代码如下:
#include<iostream>
#include<cstdio>
#include<vector>
#include<queue>
#include<utility>
#include<stack>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<set>
#include<map>
#include<climits>
using namespace std;
int main() {
#ifndef ONLINE_JUDGE
// freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
#endif
char s1[1005], s2[1005], ope[5];
double a, b, r;
while(scanf("%s%s%s", s1, ope, s2) != EOF) {
printf("%s %c %s\n", s1, ope[0], s2);
// sscanf(s1, "%lf", &a);
// sscanf(s2, "%lf", &b);
a = atof(s1);
b = atof(s2);
bool flag = 0;
if(ope[0] == '+')
r = a + b;
else
r = a * b;
if(a > INT_MAX)
printf("first number too big\n"), flag = 1;
if(b > INT_MAX)
printf("second number too big\n"), flag = 1;
if(r > INT_MAX)
printf("result too big\n");
}
return 0;
}