PAT 07-2 A+B和C

时间:2024-08-20 09:04:44

有两个值得注意的地方:1、变长数组(VLA)的使用,没想到PAT上的OJ竟然支持C99,一开始不知道就没用,看了看别人的,既然,还是用吧, 它有一点我不太喜欢,它不能像一般数组那样在声明时通过赋一个0让全部元素初始化为零,等等,有点理解了。2、long long长整型的格式化输入输出,都要在"%d"中间插入"ll",所以,算了吧,还是定义一个临时变量更方便。题设要求及代码实现如下

/*
Name:
Copyright:
Author:
Date: 01/04/15 15:16
Description:
给定区间[-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 <stdio.h> int main()
{
// freopen("in.txt", "r", stdin); // for test // printf("%d %d %d\n", sizeof(int), sizeof(long), sizeof(long long)); // for check int i, T, A, B, C;
long long tmp; scanf("%d", &T); int result[T];
// for(i = 0; i < T; i++) // for check
// printf("%d ", result[T]); for(i = ; i < T; i++)
{
scanf("%d%d%d", &A, &B, &C); tmp = (long long)A + B;
if(tmp > C)
result[i] = ;
else
result[i] = ;
} for(i = ; i < T; i++)
{
printf("Case #%d: ", i + );
if(result[i])
printf("true\n");
else
printf("false\n");
} // fclose(stdin); // for test return ;
}