给定区间[-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
程序:
#include int main(void) { int i, t, flag; /* 两个整数相加,结果可能会超出整数表示范围 */ /* 这里简单起见,声明为浮点型 */ double a, b, c; scanf("%d", &t); for(i = 1; i <= t; ++i) { scanf("%lf%lf%lf", &a, &b, &c); /* l小写字母 */ flag = a + b > c; printf("Case #%d: %s\n", i, (flag == 1) ? "true" : "false"); } return 0; }
程序2:#include int main(void) { int a, b, c; int i, t, flag = 0; scanf("%d", &t); for(i = 1; i <= t; ++i) { scanf("%d%d%d", &a, &b, &c); if((a > 0 && b > 0) || (a < 0 && b < 0)) { /* 若a,b同号 */ if(a > 0) { /* b > 0 */ if(c > 0) /* a, b, c > 0 */ flag = (a > (c - b)); /* a + b > c 转为 a > (c - b) */ else /* a, b > 0, c <= 0, 结果必为真 */ flag = 1; } else { /* a, b < 0 */ if(c < 0) /* a, b, c < 0 */ flag = (a > (c - b)); else /* a, b < 0, c >= 0, 结果必为假 */ flag = 0; } } else /* a,b异号 */ flag = (a + b > c); printf("Case #%d: %s\n", i, (flag == 1) ? "true" : "false"); } return 0; }