问题 填空题

以下程序完成两个长正整数的加法运算并输出计算结果。函数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);

}

答案

参考答案:int n;c[i]/10;c[i-1];x=y

问答题
填空题