1011. A+B和C

给定区间[-231, 231]内的3个整数A、B和C,请判断A+B是否大于C。
输入格式:
输入第1行给出正整数T(<=10),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。
输出格式:
对每组测试用例,在一行中输出“Case #X: true”如果A+B>C,否则输出“Case #X: false”,其中X是测试用例的编号(从1开始)。
输入样例:
4
1 2 3
2 3 4
2147483647 0 2147483646
0 -2147483648 -2147483647
输出样例:
Case #1: false
Case #2: true
Case #3: true
Case #4: false
Note:看似特被简单的题吧,但还是纠结了好久错在了哪里,还是傻乎乎的被题目的测试实例给蒙蔽了双眼。题目是INT_MAX+0,所以你自己测试实例是可以通过的,但如果是INT_MAX+INT_MAX就会产生溢出!所以一定要用double来定义。最下面附上如何测试各种类型的范围的代码。

#include<stdio.h>
int main()
{
    int T, i;
    double A[10], B[10], C[10];
    scanf("%d", &T);
    for (i=0; i<T; i++)
        scanf("%lf%lf%lf", &A[i], &B[i], &C[i]);
    for (i=0; i<T; i++){
        if (A[i]+B[i]>C[i]) printf("Case #%d: true\n", i+1);
        else printf("Case #%d: false\n", i+1);
    }
    return 0;
}

整形长度的范围

#include <stdio.h>
#include <limits.h>
int main()
{
    printf("The value of INT_MAX is %i\n", INT_MAX);
    printf("The value of INT_MIN is %i\n", INT_MIN);
    printf("An int takes %d bytes\n", sizeof(int));
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_37701948/article/details/80239969
今日推荐