思路:使用atof函数,将字符串改成浮点数,这样就可以直接计算以及判断了
#include<stdio.h> #include<stdlib.h> #include<string.h> #define N 800 int main(){ char s1[N], s2[N]; char ch; double a; while (scanf("%s %c %s", s1, &ch, s2) != EOF){ printf("%s %c %s\n", s1, ch, s2); if (atof(s1) > 2147483647) printf("first number too big\n"); if (atof(s2) > 2147483647) printf("second number too big\n"); if (ch == '+') a = atof(s1) + atof(s2); else if (ch == '*') a = atof(s1) * atof(s2); if (a > 2147483647) printf("result too big\n"); } return 0; } /*取值范围: int :-2147483648 到 +2147483647 long :-9223372036854775808 到 +9223372036854775807 float :1.5*10-45 到 3.4*1038 double:5.0*10-324 到 1.7*10308*/