C语言两个特别大的整数类型相加超出范围使用两个技巧

技巧1:用long (%ld)或者long long(%lld)类型存取

技巧2:当两个同号的数字相加,放到等号的另一边,变成减号

问题:

给定区间[-2的31次方, 2的31次方]内的3个整数A、B和C,请判断A+B是否大于C

我的代码:

 1 #include<stdio.h>
 2 
 3 int main(){
 4     long  array[10][3];
 5     int num,i,j;
 6     scanf("%d",&num);
 7     for(i=0;i<num;i++){
 8         for(j=0;j<3;j++){
 9            scanf("%ld",&array[i][j]);
10         }
11     }
12 
13     for(i=0;i<num;i++){
14         if((array[i][0]>=0&&array[i][1]>=0)||(array[i][0]<0&&array[i][1]<0)){
15             printf("Case #%d: %s\n",i+1,array[i][0]>array[i][2]-array[i][1]?"true":"false");
16         }else{
17             printf("Case #%d: %s\n",i+1,array[i][0]+array[i][1]>array[i][2]?"true":"false");
18         }
19     }
20 
21 }

猜你喜欢

转载自www.cnblogs.com/lyxcode/p/11109008.html