1011 A+B 和 C (15 分)
给定区间 [−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
作者: HOU, Qiming
单位: 浙江大学
时间限制: 400 ms
内存限制: 64 MB
代码长度限制: 16 KB
#include<iostream>
using namespace std;
long rec[1000][3];
bool judge(int a)
{
if(rec[a][0]+rec[a][1]>rec[a][2])
{
return true;
}
else{
return false;
}
}
int main()
{
int num;
cin>>num;
for(int i=0;i<num;i++)
{
cin>>rec[i][0];
cin>>rec[i][1];
cin>>rec[i][2];
}
for(int i=0;i<num;i++)
{
cout<<"Case #" <<i+1<<": ";
if(judge(i))
{
cout<<"true"<<endl;
}
else
{
cout<<"false"<<endl;
}
}
}
一看测试样例给的数那么大,就觉得不应用Int,但是抱着侥幸的心理还是用int过了一遍,但是只有一个点得分了,我改成long就可以了,但是对每个数据类型的表示范围还是不了解,于是了解了一下。
摘选自C 数值数据类型及表示范围(话说他也是转载233)
2147483648=。
32768=
但是int和Long的表示范围好像一样,我就搜百度得到了
目前的操作系统已发展到64位操作系统,但因程序编译工艺的不同,两者表现出不同的差别:
32位编译系统:int占四字节,与long相同。
64位编译系统:int占四字节,long占8字节,long数据范围变为:-2^63~2^63-1
还有就是如果传的参数为二维数组,应该这么传:
bool judge(int **rec)
用的时候:
if(judge(rec))
{
;
}