PAT 07-2 A+B和C

有两个值得注意的地方: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;

}

 

你可能感兴趣的:(pat)