15,447
社区成员




#include <stdio.h>
#include <string.h>
void swap(char *a,char *b) /*交换两数*/
{
char temp;
int i;
for(i=0;i<10000;i++)
{
temp=a[i];
b[i]=a[i];
a[i]=temp;
}
}
int main ()
{
char a[10000],b[10000];
int i,j,len1,len2,min,max,t,jw=0,temp=0,ans[10001];
gets(a);//输入第一个数
gets(b);//输入第二个数
len1=strlen(a);
len2=strlen(b);
if(len1>10000||len2>10000)//防止溢出
return 0;
min=len1>len2?len2:len1;
max=len1>len2?len1:len2;
t=max-min;
i=max-1;
j=min-1;
if(max==len2)//保证长数为a
swap(a,b);
while(j>=0)//按位运算
{
temp=a[i]-'0'+b[j]-'0'+jw;
ans[i]=temp%10;
jw=temp/10;
i--;
j--;
}
a[t-1]=a[t-1]+jw;
for(i=0;i<t;i++)//将a中没进行运算的部分复制到ans中
ans[i]=a[i]-'0';
for(i=0;i<max;i++)//输出
printf("%d",ans[i]);
return 0;
}