UVA - 465 Overflow
又认识一个黑科技 ——— atof( ) 函数,能将字符串转化为double。
题目大意:判断有没有越界。
解题思路:double范围比int大,所以用double来计算就好了。
#include<cstdio>
#include<stdlib.h>
#define INF 2147483647
int main() {
char a[10001], b[10001] ,c;
double x , y;
while( ~scanf("%s %c %s",a,&c,b) ) {
printf("%s %c %s\n",a,c,b);
x = atof(a);
y = atof(b);
if( x > INF) printf("first number too big\n");
if( y > INF) printf("second number too big\n");
if(c == '*' && x*y > INF) printf("result too big\n");
if(c == '+' && x+y > INF) printf("result too big\n");
}
}