它输出的结果不正确
#include<bits/stdc++.h>
using namespace std;
char s1[10090],s2[10090],s3[10090];
int a[10090],b[10090],c[10090];
bool cmp(char s1[],char s2[]){
int n=strlen(s1),m=strlen(s2);
if(n!=m){
return n<m;
}else{
for(int i=0;i<n;i++){
if(s1[i]!=s2[i]){
return s1[i]<s2[i];
}
}
return false;
}
}
int main(){
int la,lb,lc;
int i;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
cin>>s1>>s2;
la=strlen(s1);
lb=strlen(s2);
if(cmp(s1,s2)){
strcpy(s3,s1);
strcpy(s1,s2);
strcpy(s2,s3);
cout<<"-";
}
la=strlen(s1),lb=strlen(s2);
for(i=0;i<la;i++) a[la-i]=s1[i]-'0';
for(i=0;i<lb;i++) b[lb-i]=s1[i]-'0';
lc=max(la,lb);
i=1;
while(i<=la || i<=lb){
if(a[i]<b[i]){
a[i]+=10;
a[i+1]--;
}
c[i]=a[i]-b[i];
i++;
}
while(c[lc]==0 && lc>1) lc--;
for(i=lc;i>=1;i--){
cout<<c[i];
}
return 0;
}