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

Posted lyxcode

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 

 

以上是关于C语言两个特别大的整数类型相加超出范围使用两个技巧的主要内容,如果未能解决你的问题,请参考以下文章

C语言使用栈实现String类型的两个大数相加

大数相加(类似杭电acm1002)

两个超级大整数的相加,相乘

C语言如何求一个整数的各个位数之和

c++中,long long是啥类型?

PHP 计算两个特别大的整数