1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| #include<string.h> #include<stdio.h> int main() { int a[110],b[110],c[110]; char s1[110],s2[100],t[110]; int i,j; int lena,lenb,lenc; while(scanf("%s %s",s1,s2)!=EOF) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); if(strlen(s1)<strlen(s2)||(strlen(s1)==strlen(s2)&&strcmp(s1,s2)<0)) { strcpy(t,s1); strcpy(s1,s2); strcpy(s2,t); printf("-"); } lena=strlen(s1); lenb=strlen(s2); for(i=0,j=lena-1;i<lena;i++,j--) a[j]=(int) (s1[i]-'0'); for( i=0,j=lenb-1;i<lenb;i++,j--) b[j]=(int) (s2[i]-'0'); i=0; while(i<lena||i<lenb) { if(a[i]<b[i]) { a[i+1]--; a[i]+=10;; } c[i]=a[i]-b[i]; i++; } lenc=i; for(;c[lenc]==0&&lenc>0;lenc--); for(i=lenc;i>=0;i--) printf("%d",c[i]); printf("\n"); } return 0; }
|