大数相加 + 方法2

来源:互联网 发布:老男孩linux运维pdf 编辑:程序博客网 时间:2024/04/28 01:53
int a[1000],b[1000],c[1001];
void add();void output();
void main()
{
int i;
char a1[1000],b1[1000];
gets(a1);gets(b1);
strrev(a1);strrev(b1);
for(i=0;a1[i]!='\0';i++)
a[i] = a1[i]-'0';
for(i=0;b1[i]!='\0';i++)
b[i] = b1[i]-'0';


add();   //两个大数开始相加
output();
}


void add()
{
int i=0,sum=0;
for(i=0;i<1000;i++)   //进位处理
{
sum+=a[i]+b[i];
c[i]=sum%10;
sum /=10;
}
if(sum!=0)
c[i]=sum;
}


void output()
{
int i,pos;
for(i=1000;i>=0;i--)
if(c[i]!=0)
{pos =i; break;}
for(i=pos;i>=0;i--)
printf("%d",c[i]);
printf("\n");
}