uva465 - Overflow
题目大意:检查两个数相加相乘会不会溢出
解题思路:atof直接把字符串读成浮点数,然后浮点数的范围比int的大的多,直接比较就行了。
#include<cstdio>
#include<cstdlib>
#include<cstring>
char str1[10000];
char str2[10000];
char op;
int limit=2147483647;
int main(){
double a,b;
while((scanf("%s %c %s",str1,&op,str2))!=EOF)
{
a=atof(str1);
b=atof(str2);
printf("%s %c %s\n",str1,op,str2);
if(a>limit)printf("first number too big\n");
if(b>limit)printf("second number too big\n");
if(op=='+')
if(a+b>limit)printf("result too big\n");
if(op=='*')
if(a*b>limit)printf("result too big\n");
memset(str2,0,sizeof(str2));
memset(str1,0,sizeof(str1));
}
return 0;
}