3. A - B(高精度)求解!!!

#include<bits/stdc++.h>
using namespace std;
int a[1005],b[1005],c[1005];
int main(){
	string s1,s2;
	cin>>s1>>s2;
        if(s2.size()>s1.size()||s2.size()==s1.size()&&s2>s1){
		swap(s1,s2);
		cout<<"-";//TODO
	}//如果a>b,则差为负数,输出负号
	for(int i=0;i<s1.size();i++){
		a[i]=s1[s1.size()-1-i]-'0';//TODO
	}//string存入数组1
	for(int i=0;i<s2.size();i++){
		b[i]=s2[s2.size()-1-i];//TODO
	}//string存入数组2
	for(int i=0;i<s1.size();i++){
		c[i]=a[i]-b[i];//TODO
	}//各个数位相减
	for(int i=0;i<s1.size();i++){
		if(c[i]<0){
			c[i+1]-=c[i]/10;
			c[i]=0-c[i];//TODO
		}//退位
	}
	int sum=s1.size();
	for(int i=0;i<s1.size();i++){
		if(c[s1.size()-i]==0){
			sum--;//TODO
		}//TODO
	}//循环高位去零
	for(int i=sum-1;i>=0;i--){
		cout<<c[i];//TODO
	}//倒序打印
    return 0;
}

发代码请格式化

for(int i=0;i<s2.size();i++){
	b[i]=s2[s2.size()-1-i];//TODO
}//string存入数组2

b[i]=s2[s2.size()-1-i]; 少一个 -'0' ,加上后再看看