给定区间 [−2 31 ,2 31 ] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C。不明白代码哪里有问题。

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图
#include<stdio.h>
int main()
{int x1[3],x2[101],n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
    scanf("%d",&x1[0]);
    scanf("%d",&x1[1]);
    scanf("%d",&x1[2]);
    if(x1[0]+x1[1]>x1[2])
    x2[i]=1;
    else
    x2[i]=0;
}
for(i=0;i<n;i++)
{
    if(x2[i]==1)
    printf("Case #%d: true",i+1);
    else
    printf("Case #%d: false",i+1);
    if(i<n-1)printf("\n");
}
return 0;
}

运行结果及报错内容

img

你的考虑数值范围,用int类型计算A+B结果可能会溢出,你得用long long

#include <stdio.h>

int main()
{
    long long A, B, C;
    int T;
    scanf("%d", &T);
    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;
}