大数减法,问题有可能处在后面,麻烦帮忙找一下bug!谢谢!
#include
#include
#include
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char argv[]) {
char a[50],b[50];
int la,lb,lc,m[50]={0},n[50]={0},i,x,g;
scanf("%s%s",a,b);
la=strlen(a);
lb=strlen(b);
int j=0,q=0;
for(int i=la-1;i>=0;i--){
m[j]=a[i]-'0';
j++;
}
for(int i=lb-1;i>=0;i--){
n[q]=b[i]-'0';
q++;
}
/*for(int i=0;i<la;i++){
printf("%d",m[i]);
}
printf("\n");
for(int i=0;i<lb;i++){
printf("%d",n[i]);
}/
if(la>lb){
g=1;
lc=la;
}
if(la<lb){
g=-1;
lc=lb;
}
if(la=lb){
lc=la;
if(strcmp(a,b)>=0){
g=1;
}else{
g=-1;
}
}
if(g==1){
for(int i=0;i<lc;i++){
if((m[i]-n[i])<0){
m[i]=m[i]+10-n[i];
m[i+1]--;
}else{
m[i]=m[i]-n[i];
}
}
}
if(g==-1){
for(int i=0;i<lc;i++){
if((n[i]-m[i])<0){
m[i]=n[i]+10-m[i];
n[i+1]--;
}else{
m[i]=n[i]-m[i];
}
}
}
for(i=49;i>=0;i--){
if(m[i]!=0)
break;
}
for( ;i>=0;i--){
printf("%d",m[i]);
}
return 0;
}