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;
}

 

posted @ 2015-04-01 16:48  自由的青  阅读(608)  评论(0编辑  收藏  举报