1011. A+B和C (15)
时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
HOU, Qiming
给定区间[-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() { int T; long long A,B,C; int a[10]; scanf("%d",&T); int i; for(i=1;i<=T;i++) { scanf("%lld",&A); scanf("%lld",&B); scanf("%lld",&C); if(A+B>C) a[i]=0; else a[i]=1; } for(i=1;i<=T;i++) { printf("Case #%d: ",i); if(a[i]==0) printf("true\n"); else if(a[i]==1) printf("false\n"); } return 0; }
这题做的非常不顺利,差不多花了一下午时间。
有以下几个问题:
1.因为题中测试的数范围比int大,所以要用long long定义。
2.用long long定义以后,C语言要用&lld输入,这点就可以看出c在对于输入输出时比c++麻烦。
3.对于输入格式问题,因为要都输入再输出,所以最开始想用字符串数组存false和true,但是忘记了c语言中如何定义字符串数组,百度以后用二维数组也依然有错误。现在还没有解决。
4.后来想到用0和1代替true和false,这样写法也简单,毕竟15分的题精力应该不用花费太多。
5.对于数值范围好像应该再补补,对于vs2010调试问题,得到了很好的经验,明天看完试一下。应该再看看c++,输入输出很简单。