给定区间 [−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 开始)。
①我是按照题目给的输入格式做的,我看其他的博客主大部分是这样的:每输入一行就进行判断然后输出,奇怪的是通过了测试。
②由于 3 个整数已经给定区间 [−2^31,2^31] ,这点得小心,一般的int(2^31-1)是不能满足的,long(2^31-1)也是不行的。只能选择long long (2^63-1) 足够了。但是测试时,发现用int 有一个测试点过不去,用long的话没有问题。感觉此题不严谨。
③我是先把输入进来的所有数据先保存到一个一维数组里面,然后再根据输出格式进行打印、数据处理。
另附上测试代码:
#include <stdio.h> int main() { printf("short 占%d个字节\n",sizeof(short)); printf("int 占%d个字节\n",sizeof(int)); printf("long 占%d个字节\n",sizeof(long)); printf("long long 占%d个字节\n\n\n",sizeof(long long)); printf("unsigned short 占%d个字节\n",sizeof(unsigned short)); printf("unsigned int 占%d个字节\n",sizeof(unsigned int)); printf("unsigned long 占%d个字节\n",sizeof(unsigned long)); printf("unsigned long long占%d个字节\n",sizeof(unsigned long long)); return 0; }