#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//两个大数相加 
char* add(char *s1,char *s2,char *c)
{
    char *s=c;
    int i=strlen(s1)-1,j=strlen(s2)-1,k=0;
    int flag=0;
    int sum;
    for(;i>=0&&j>=0;i--,j--,k++)
    {
        sum=(s1[i]-'0')+(s2[j]-'0')+flag;
        (flag=sum>9)?(c[k]=sum%10+'0'):(c[k]=sum+'0');
    }
    for(;i>=0;i--,k++)
    {
        sum=(s1[i]-'0')+flag;
        (flag=sum>9)?(c[k]=sum%10+'0'):(c[k]=sum+'0');
    }
    for(;j>=0;j--,k++)
    {
        sum=(s2[j]-'0')+flag;
        (flag=sum>9)?(c[k]=sum%10+'0'):(c[k]=sum+'0');
    }
    if(flag) c[k++]='1';
    c[k]=0;
    strrev(s);
    return s;
}
void main()
{
    char *s1="66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666";
    char *s2="545986525889653998568835585599721202580552058888505568798314255555000555878943698741230254612887896124674758";
    char sum[1000];
    add(s1,s2,sum);
    puts(sum);
}

两个大数相加_编程