有兩個值得注意的地方: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 = 0; i < T; i++)
{
scanf("%d%d%d", &A, &B, &C);
tmp = (long long)A + B;
if(tmp > C)
result[i] = 1;
else
result[i] = 0;
}
for(i = 0; i < T; i++)
{
printf("Case #%d: ", i + 1);
if(result[i])
printf("true\n");
else
printf("false\n");
}
// fclose(stdin); // for test
return 0;
}