#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int lena,lenb,lenc,a[500]={0},b[500]={0},c[500]={0};
char k[500]={0};
int gjdMin(char m[],char n[]){
//长度
lena=strlen(m);
lenb=strlen(n);
// 判断是否负数
bool fa=(strcmp(m,n)<0);
bool fb=(lena<lenb);
if(fa==false&&fb==true){
cout<<"-";
strcpy(k,m);
strcpy(m,n);
strcpy(n,k);
}
//转换成数组
lena=strlen(m);
lenb=strlen(n);
for(int i=0;i<lena;i++){
a[lena-i-1]=m[i]-'0';
}
for(int i=0;i<lenb;++i){
b[lenb-i-1]=n[i]-'0';
}
//计算
lenc=0;
while(lenc<lena){
if(a[lenc]<b[lenc]){//判断是否退位
a[lenc+1]--;
a[lenc]+=10;
}
//减法
c[lenc]+=a[lenc]-b[lenc];
lenc++;
}
//计算位数
while(c[lenc]==0&&lenc>=1){
lenc--;
}
//输出
for(int i=lenc;i>=0;--i){
cout<<c[i];
}
}
int main(){
char m[500]={0},n[500]={0};
//输入
gets(m);
gets(n);
gjdMin(m,n);
return 0;
}
点个赞呗❤