看看怎么错了
程序代码:#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{
int a[100]={0},b[100]={0},c[100]={0},i,len,la,lb,sum,da;
char s1[100],s2[100];
scanf("%s %s",s1,s2);
la=strlen(s1);
lb=strlen(s2);
da=0;
if(la<lb)
da=1;
else if(la==lb)
for(i=0;i<la;i--)
{
if(s1[i]>s2[i])
break;
if(s1[i]<s2[i])
{
da=1;
break;
}
}
if(da==1)
{
for(i=0;i<lb;i++)
a[i]=s2[lb-1-i]-'0';
for(i=0;i<la;i++)
b[i]=s1[la-1-i]-'0';
}
if(da!=1)
{
for(i=0;i<la;i++)
a[i]=s1[la-1-i]-'0';
for(i=0;i<lb;i++)
b[i]=s2[lb-1-i]-'0';
}
len=la>lb?la:lb;
sum=0;
for(i=0;i<len;i++)
{
c[i]=a[i]-b[i]-sum;
sum=c[i]>0;
if(sum<0)
c[i]+=10;
}
if(c[len-1]==0&&len>1)
len--;
if(da==1)
putchar('-');
for(i=len-1;i>=0;i--)
printf("%d",c[i]);
getch();
}
求助。高精度减法。本人上初二,希望菜鸟们一起探讨一下。







