1011 A+B 和 C (15分)
给定区间 [−2 31,2 31 ] 内的 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
题目分析:
1.这题比较简单,需要注意边界值,不然可能会提交不过。
代码:
#include <stdio.h>
//MrHaddis
int main() {
int number = 0;
//这里要用double
//A+B的值是要超出int的范围的
double A = 0, B = 0, C = 0;
scanf("%d", &number);
//边界条件
if (number > 10) {
return 0;
}
//定义一个数组,存储结果
int results[number];
//定义下标
int index = 0;
for (int i = 0; i < number; ++i) {
//%lf对应 double
scanf("%lf""%lf""%lf", &A, &B, &C);
//边界条件
if (A < -2147483648 || A > 2147483648) {
return 0;
}
if (B < -2147483648 || B > 2147483648) {
return 0;
}
if (C < -2147483648 || C > 2147483648) {
return 0;
}
//判断的逻辑
//给数组存储数据
//用0 和 1来区分结果
if (A + B > C) {
results[index++] = 1;
} else {
results[index++] = 0;
}
}
//遍历数组 输出结果
for (int i = 0; i < number; ++i) {
if (results[i]) {
printf("Case #%d: true", i + 1);
} else {
printf("Case #%d: false", i + 1);
}
//最后一组时,不输出换行符
if (i < number - 1) {
printf("\n");
}
}
return 0;
}