#include<stdio.h>
void fun(char *a,int lena,char *b,int lenb)
{
int i,j,k,lenc;int c[500];
i=j=k=lenc=0;
i=(lena>=lenb?lenb:lena)-1;//i为长度较短的字符数组的长度-1
j=(lena>=lenb?lena:lenb)-1;//j为长度较长的字符数组的长度-1
for(k=0;k<500;k++)
c[k]=0;
int fl=0;
if(lena>=lenb)
{
while(i>=0)
{
int s=(a[j]-'0')+(b[i]-'0')+fl;
if(s>=10)
{
fl=1;
c[lenc++]=s%10;
}
else
{
c[lenc++]=s;
fl=0;
}
i--;j--;
}
while(j>=0)
{
int s=a[j]-'0'+fl;
if(s>=10)
c[lenc++]=s%10;
else
{
c[lenc++]=s;
fl=0;
}
j--;
}
if(fl==1)
c[lenc++]=1;
}
else
{
while(i>=0)
{
int s=(a[i]-'0')+(b[j]-'0')+fl;
if(s>=10)
{
fl=1;
c[lenc++]=s%10;
}
else
{
c[lenc++]=s;
fl=0;
}
i--;j--;
}
while(j>=0)
{
int s=b[j]-'0'+fl;
if(s>=10)
c[lenc++]=s%10;
else
{
c[lenc++]=s;
fl=0;
}
j--;
}
if(fl)
c[lenc++]=1;
}
for(i=lenc-1;i>=0;i--)
printf("%d",c[i]);
}
int main()
{
char a[500],b[500],lena,lenb;//以字符串的形式输入两个数存储在a,b两个数组中
scanf("%s",a);
scanf("%s",b);
lena=lenb=0;
while(a[lena]!='\0')
lena++;
while(b[lenb]!='\0')
lenb++;
fun(a,lena,b,lenb);
}
代码虽然长了点,属于偏暴力的那种做法,供模板使用