回复 5楼 马后炮
按照你说的改了一下

欢迎来到我的博客:http://blog..cn/noisunyuhong
程序代码:#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=0,j=0;
gets(a);
gets(b);//获取字符串
length_a=strlen(a),
length_b=strlen(b);//获取字符串长度
i = length_a-1;
j = length_b-1;
if(length_a>length_b)
{
while(i>=0)
{
if(j>=0)
b[i]=b[j];
else
b[i]='0';
i--;
j--;
}
b[length_a]=0;
j=length_a;
}
else
{
while(j>=0)
{
if(i>=0)
a[j]=a[i];
else
a[j]='0';
i--;
j--;
}
a[length_b]=0;
j=length_b;
}
for(i=j-1;i>=0;i--)
{
sum[i+1] = a[i]+b[i]+sum[i+1]-2*'0';
if( sum[i+1] >= 10)
{
sum[i+1] += -10;
sum[i]++;
}
}
for(i=0;i<=j;i++)
{if(sum[i]==0&&i==0)
continue;
printf("%d",sum[i]);}
system("pause");
return 0;
}


程序代码:#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void rollback(char *ScL,int length_a,int length_b) //对于长度短的字符串前面填充零
{
ScL[length_a+1]='\0';
while(length_a>=0)
{
if(length_b>=0)
ScL[length_a]=ScL[length_b];
else
ScL[length_a]='0';
length_a--;
length_b--;
}
}
int main()
{
char a[10]={0},b[10]={0},sum[10]={0};
int length_a,length_b;
gets(a);
gets(b);//获取字符串
length_a = strlen(a),
length_b = strlen(b);//获取字符串长度
if(length_a >length_b)
{
rollback(b,length_a-1,length_b-1);
}
else
{
rollback(a,length_b-1,length_a-1);
length_a = length_b;
}
for(length_b = length_a-1;length_b >=0 ; length_b--)
{
sum[length_b+1] = a[length_b]+b[length_b] + sum[length_b+1]-2*'0';
if( sum[length_b+1] >= 10) //注意字符范围,不然物极必反
{
sum[length_b+1] += -10;
sum[length_b]++;
}
}
for(length_b = 0;length_b <= length_a;length_b++) //输出
{
if(sum[length_b]==0 && length_b==0) //处理前面零
continue;
printf("%d",sum[length_b]);
}
system("pause");
return 0;
}
LZ看懂吗
