若第一個數超出 231,輸出 first number too big。
若第二個數超出 231,輸出 second number too big。
若第二個數超出 231,輸出 result too big。
其實這題我本來想用大數來算,但發現用 double 運算也可以,所以就用 double, C 語言程式碼如下:
while (gets(str))
{
double inf = (double)INT_MAX, n1, n2;
printf("%s\n", str);
sscanf(str, "%lf %c %lf", &n1, &ch, &n2);
if (n1 > inf) printf("first number too big\n");
if (n2 > inf) printf("second number too big\n");
if (ch == '+')
{
if (n1 + n2 > inf) printf("result too big\n");
}
if (ch == '*')
{
if (n1 * n2 > inf) printf("result too big\n");
}
}
By David.K
p465題目連結
回ACM題庫目錄
回首頁
沒有留言:
張貼留言