请求大家解疑 用指针实现大整数相加的函数,大整数为10进制,最多有15位。
所谓大整数指的是位数很大的整数,如9999999999。 大整数相加的例子:5555555555+6666666666=12222222221 这是我编的,就是输不出结果 大家看看 什么地方不对 谢谢啊
# include<stdio.h>
main()
{
char a[15],b[15];
void fun(a,b);
int i;
gets(a);
a[14]='\0';
fflush(stdin);
gets(b);
b[14]='\0';
fun(a,b);
for(i=0;i<15&&b!='\0';i++)
printf("%c",*(b+i));
}
void fun(char x[],char y[])
{
char c[15]={'\0'},z[15]={'\0'};
int i,j;
for(i=14,j=0;i>0;i--)/*倒置x[]*/
{
if(x[i]!='\0')
{
z[j]=x[i];
j++;
}
}
for(i=14,j=0;i>0;i--)
{
if(y[i]!='\0')
{
x[j]=y[i];
j++;
}
}
for(i=0;i<15&&(z[i]!='\0'||x[i]!='\0');i++)/*数组相加*/
{
c[i]=z[i]+x[i];
if(c[i]>10)
{
c[i]=c[i]-10;
z[i+1]=z[i+1]+1;
}
}
if(z[i]=='0')
for(;x[i]!='\0';i++)
c[j++]=x[i];
else if(x[i]=='0')
for(;z[i]!='\0';i++)
c[j++]=z[i];
for(i=14,j=0;i>0;i--)/*倒置得出数组*/
{
if(c[i]!='\0')
{
y[j]=c[i];
j++;
}
}
}