我自己写的高精度加法,哪里错了?
#include<stdio.h>#include<string.h>
int add(char a[100],char b[100],char c[200],int j)//高精度预算//
{ int k,i;
for(k=99;k>=j;k--)
{c[200-100+k]=a[k]+b[k];
if(c[200-100+k]>=10)
c[200-100+k-1]+=c[200-100+k-1];
c[200-100+k-1]=c[200-100+k-1]-10;
}
i=strlen(c);
for(k=i;k<200;k++)
printf("%c",&a[k]); }
main()
{char a[100],b[100],c[200];
int i,k,l,u,j;
for(i=0;i<100;i++)
{a[i]=0;
b[i]=0;
} //数组初始化//
for(i=0;i<200;i++)
{c[i]=0;} //数组初始化//
gets(a);
gets(b);
i=strlen(a);
k=strlen(b);
for(j=0;j<=i;j++)
a[100-j]=a[i-j];//将数组里的数,移动到最后
for(j=0;j<=k;j++)
b[100-j]=b[k-j];
if (i>j) j=i;
add(a,b,c,j);
}
哪里错了?