C语言基础篇:大数的加法

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    int lena,lenb;
    int i,j,k,maxx;
    char a[1500],b[1500],c[1500],jin;
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    memset(c,0,sizeof(c));
    while(scanf("%s%s",a,b)!=EOF)
    {
        jin='0';
        lena=strlen(a);
        lenb=strlen(b);
        maxx=lena>lenb?lena:lenb;
        //printf("maxx=%d\n",maxx);
        //printf("lena=%d,lenb=%d\n",lena,lenb);
        j=1400;
        lena--;
        lenb--;
        for(i=maxx-1;i>=0;i--)
        {
            if(lena>=0&&lenb>=0)
            {c[j]=a[lena]-'0'+b[lenb]-'0'+jin;
            jin='0';}
            else if(lena>=0&&lenb<0)
            {c[j]=a[lena]-'0'+jin;
            jin='0';}
            else if(lenb>=0&&lena<0)
            {c[j]=b[lenb]-'0'+jin;
            jin='0';}
            //printf("c[j]==%c\n",c[j]);
            if(c[j]>'9')
            {
                c[j]=c[j]-'9'+'0'-1;
                jin='1';
            }
            //printf("c[j]jin==%c\n",c[j]);
            lena--;
            lenb--;
            j--;
        }
        j++;
        if(jin=='1')
        {
            j--;
            c[j]='1';
        }
        //printf("%d\n",j);
        for(;j<=1400;j++)
        {
            printf("%c",c[j]);
        }
        printf("\n");
        memset(a,0,sizeof(a));
        memset(b,0,sizeof(b));
        memset(c,0,sizeof(c));
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值