以下程序完成两个长正整数的加法运算并输出计算结果。函数add模拟手工加法运算的过程,将a和b指向的数组中存储的两个以字符串形式表示的n位正整数相加,并将运算结果以字符串形式保存到c指向的数组中。main函数中pl和p2数组分别存放被加数字符串和加数字符串,p3数组存放运算结果字符串。若p1中的字符串为"1000000001"、p2中的字符串为"9000000009",调用add函数后p3得到的是以字符串表示的这两个整数相加的结果"10000000010"。试完善程序以达到要求的功能。
#include "stdio.h"
#include "string.h"
void add(char a[],char b[],char c[],())
{int i,k;
c[n]=’\0’;k=0;
for(i=n-1;i>=0;i--)
{c[i]=(a[i]-’O’)+(b[i]-’0’)+k;
k=();
c[i]=c[i]%10+’0’;
}
if(k)
{for(i=n+1;i>O;i--)
c[i]=();
c[i]=k+’0’;
}
}
void main()
{char p1[80]="1000000001",pz[80]="9000000009",p3[80];
int i,x=strlen(p1),y=strlen(p2);
if(x { for(i=x;i>=0;i--)
{p1[i+y-x]=p1[i];p1[i]=’0’;}
();
}
if(x>y)
for(i=y;i>=0;i--)
{p2[i+x-y]=p2[i];p2[i]=’0’;}
add(p1,p2,p3,x);
puts(p3);
}