有兩個值得注意的地方: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; }