题目:给定区间[-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
对于网上的答案,都没法做到在输入四组数据后再显示四组结果,我自己也想了很久,请问解题的核心是啥呢
如果一定要获取输入后再统一显示计算结果,可以定义一个数组存储T组数据的判断结果,因为题目给定T最大为10,所以可以使用10个元素的int数组来存储结果,获取输入后再统一显示计算结果。
代码如下:
参考链接:
#include <stdio.h>
int main(void){
int result[10];
int i,n,a,b,c;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d%d%d",&a,&b,&c);
// 将每组的计算结果存储在数组中
if((a+b)>c){
result[i]=1;
}else{
result[i]=0;
}
}
// https://baijiahao.baidu.com/s?id=1747926945905574418
// 获取输入与计算完成后,统一显示每组的测试结果
for(i=0;i<n;i++){
if(result[i]==1){
printf("Case #%d: true",i+1);
}else{
printf("Case #%d: false",i+1);
}
if(i<n-1){
printf("\n");
}
}
return 0;
}
#include <stdio.h>
int main()
{
int T, i;
long long A, B, C;
scanf("%d", &T); // 读取测试用例数量
for (i = 1; i <= T; i++) {
scanf("%lld %lld %lld", &A, &B, &C); // 读取A、B和C
if (A + B > C) {
printf("Case #%d: true\n", i); // A + B > C,输出true
} else {
printf("Case #%d: false\n", i); // A + B <= C,输出false
}
}
return 0;
}
用了long long类型来存储输入数据,因为题目中给出的数据范围是[-231, 231],超过了int类型的表示范围。
平台上的测试用例是一次性输入的,不需人工输入,不会出现你担心的问题,所以最终显现的就是和样例一样的效果。
不知道你这个问题是否已经解决, 如果还没有解决的话: