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