pat试题,A+B和C
第一次发帖,新人贴,还望多多给力给定区间[-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<stdio.h>
int main()
{
int i = 0, num, sb;
int a = 0, b = 1, c = 2,d = 0, e = 1, f = 2;
scanf("%d", &num);
while (i < num)
{
scanf("%d %d %d", &sb, &sb, &sb);
i++;
a = a + 3, b = b + 3, c = c + 3;
}
for (int k = 0; k < num; k++)
{
if ((sb + sb)>sb)
{
printf("Case #%d: true\n", (k + 1));
}
else
printf("Case #%d: false\n", (k+ 1));
d = d + 3, e = e + 3, f = f + 3;
}
return 0;
}
我蛮好奇的,纯粹交给计算机判断大小,为什么我其他数输入进去,是没问题的。-2147483648 这个数连着输入3遍,竟然是错误的
本帖最后由 eglym 于 2017-9-29 23:05 编辑
当你的输入为三个 -2147483647的时候
在计算的过程之中会出现溢出的吧。。
#include<stdio.h>
int main()
{
int i = 0, num, sb;
int a = 0, b = 1, c = 2,d = 0, e = 1, f = 2;
scanf("%d", &num);
while (i < num)
{
scanf("%d %d %d", &sb, &sb, &sb);
i++;
a = a + 3, b = b + 3, c = c + 3;
}
for (int k = 0; k < num; k++)
{
printf("%d\n",sb + sb);
if ((sb + sb)>sb)
{
printf("Case #%d: true\n", (k + 1));
}
else
printf("Case #%d: false\n", (k+ 1));
d = d + 3, e = e + 3, f = f + 3;
}
return 0;
}
我将两个相加之后的结果输出为2..
就酱~~~
去年我参加过PAT结果就最后一题拿到了5分,其他的没有注意格式。。结果最后成绩为5分,哭死。。。已然是一条咸鱼了 eglym 发表于 2017-9-29 23:03
当你的输入为三个 -2147483647的时候
在计算的过程之中会出现溢出的吧。。
pat考试,不是提交之后,可以看成绩的嘛,没有得分改格式,继续试,不就行了。。为毛,,会得5分
页:
[1]