高精度加法
我写了一个高精度加法的程序,但是结果错误,不知道为什么?
程序代码:#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ZERO -99
int main()
{
char a[10]={0},b[10]={0},sum[10]={0};
int length_a,length_b,i,max;
memset(sum,ZERO,sizeof(sum));
gets(a),gets(b);//获取字符串
length_a=strlen(a),length_b=strlen(b);//获取字符串长度
if(length_a>length_b) max=length_a;//获取最长串
else max=length_b;
//转换为数字串
for(i=0;i<length_a;i++)
a[i]=a[i]-48;
for(i=0;i<length_b;i++)
b[i]=b[i]-48;
//end
for(i=max-1;i>=0;i--)
{
sum[i]=a[i]+b[i];//相加
while(sum[i]>=10)//如果大于10,则进位
sum[i]=sum[i]-10,sum[i-1]=sum[i-1]+1;
}
i=0;
while(sum[i]!=ZERO)
printf("%d",sum[i]),i++;
system("pause");
return 0;
}









