永发信息网

如何C语言中实现两个任意大小的整数的相加

答案:5  悬赏:0  手机版
解决时间 2021-03-24 05:46
  • 提问者网友:树红树绿
  • 2021-03-23 17:41
如何C语言中实现两个任意大小的整数的相加
最佳答案
  • 五星知识达人网友:醉吻情书
  • 2021-03-23 19:09
要实现任意大小两个整数相加,那么就不能存在溢出情况。所以无法使用任何系统类型,唯一的方式是用数组模拟整数存储,并自行实现加法操作算法。
需要注意以下几点:
1 大数如何存储及输出;
2 计算时进位的处理;
3 两个计算数长度不同时的处理;
4 当达到最高位仍有进位的处理,即结果的长度大于任意一个操作数。


以下是一个比较简单的代码:

#include 
#include 

char s[101];
int sum[101];

int main() 
{
    int i, j;
    while (gets(s), strcmp(s, "0")) {//巧妙化解开多少个数组 算多少个数的和的局面
        j=strlen(s);
        for (i=j-1; i>=0; --i) {
            sum[j-i-1]+=(s[i]-'0');//s[i]-'0'表示字符数字转化成int数字  倒序加到sum中 sum第一个数是s的最后一个数的和
        }
    }
    j=101; while(!sum[j])--j;  //重新赋值j 使j为目前sum的总位数
    for (i=0;i        sum[i+1]+=sum[i]/10;
        sum[i]=sum[i]%10;
    }
    for (i=j; i>=0; --i) {
        printf("%d", sum[i]);
    }


全部回答
  • 1楼网友:长青诗
  • 2021-03-23 23:15
好象有个随机函数
  • 2楼网友:末日狂欢
  • 2021-03-23 22:32
先用random()生成随机数,这个数是任意大小的
然后做加法操作即可
  • 3楼网友:琴狂剑也妄
  • 2021-03-23 21:43
首先你要定义这两个整数的类型;
因为是整数所以必然使用int
大小任意...
long long int a,b,c;
a = ;
b= ;
c = a + b;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯