1011 A+B 和 C (15 分)

1011 A+B 和 C (15 分)

给定区间 [−2​​​^31,2^​31​​] 内的 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
int main()
{
	int t;
	scanf("%d", &t);
	long long a;
	long long b;
	long long c;
	for (int i=1; i<=t; i++)
    {
        scanf("%lld%lld%lld", &a, &b, &c);
        if(a+b>c)
        {
            printf("Case #%d: true\n",i);
        }
        else
        {
            printf("Case #%d: false\n",i);
        }
            
    }

    return 0;
}

 

  •  这道题注意的点是:有符号型int范围是[-2^31,2^31-1],题目范围是 [−2​​​^31,2^​31​​],最大值2^31会超过int范围,况且int+int有可能超出int范围,所以只能用longlong类型定义变量

  • long long 型输入输出格式为%11d

  • scanf是有返回值的,返回值是成功读入的参数个数。在控制台读取数据不会读入失败,而在读取文件时达到文件末尾无法读取才导致读入失败,这时scanf返回-1,C语言中用EOF代表-1,当题目中未说明有多少数据需要读入时,可以利用scanf返回值是否为EOF判断输入是否结束

  • while(scanf("%d",&n) != EOF)
    {
        
        
    }

     读入字符串可以采用

  • while(scanf("%s",str) != EOF)
    {
        
        
    }
    
    
    while(gets(str) != NULL)
    {
        
        
    }

     

  •  while……break型

  • 当输入数据满足某个条件时停止输入

  • #include 
    int main()
    {
        int a;
        int b;
        while(scanf("%d%d",&a,&b)!=EOF)
        {
            if(a==0&&b==0)
            {
                break;
            }
            printf("%d\n",a+b);
        }
        return 0;
    }

     

你可能感兴趣的:(PAT乙级,PAT乙级)