#include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h> #include<math.h> char x[240],y[240],t[240]; int a[240],b[240],c[240]; int main(){ scanf("%s",&x); scanf("%s",&y); int i,n = strlen(x)>strlen(y)? strlen(x):strlen(y); /** strcmp(s1,s2); 当s1<s2时,返回为负数; 当s1=s2时,返回值= 0; 当s1>s2时,返回正数。 **/ if(strcmp(x,y)<0) { printf("-"); strcpy(t, x);//x复制给t strcpy(x, y);//y复制给x strcpy(y, t);//t复制给y } //将x装入a数组 int k = 0; for(i=strlen(x)-1;i>=0;i--) a[k++] = x[i]-'0'; //将y装入b数组 k = 0; for(i=strlen(y)-1;i>=0;i--) b[k++] = y[i]-'0'; //逐位相减 int f = 0; for(i=0;i<n;i++){ c[i] = a[i] - b[i] - f; if(c[i]<0){ c[i] = c[i] + 10; f = 1; }else{ f = 0; } } k = n;//k假设为n值 for(i=n-1;i>=0;i--){ if(c[i]!=0) { k = i; break; } } if(k==n) printf("%d",0); else{ for(i=k;i>=0;i--){ printf("%d",c[i]); } } return 0; } /************************************************************** Problem: 1269 User: admin Language: C Result: Accepted Time:19 ms Memory:1148 kb ****************************************************************/