自测没有问题,提交报错
#include<bits/stdc++.h>
using namespace std;
char a[10088], b[10088];
int c[10088];
int main() {
a[0] = '0';
b[0] = '0';
int i1 = 1, i2 = 1;//a.length=i1 b.length=i2
while (a[i1 - 1] !='\n') {
scanf("%c", &a[i1]);
i1++;
}
i1 = i1 - 2;
while (b[i2 - 1] != '\n') {
scanf("%c", &b[i2]);
i2++;
}
i2 = i2 - 2;
if(i2==i1){
bool f=1;
for(int i=1;i<=i1;i++){
if(a[i]!=b[i]) {
f=0;
break;
}
}
if(f==1){
cout<<0;
return 0;
}
}
if(i1>i2){
int j=i1;
int jin = 0;
for (int i = 0; i <= j; i++) {
if (i1 - i >= 0 && i2 - i >= 0) {
c[i] = (a[i1 - i] - b[i2 - i] - jin+10) % 10;
if(a[i1-i]-b[i2-i]-jin>=0) jin=0;
else jin=1;
}
if (i1 - i >= 0 && i2 - i < 0) {
c[i] = (a[i1 - i] - 48 - jin) % 10;
jin=0;
}
}
bool l=0;
for (int i = i1; i >= 0; i--) {
if (i == i1 && c[i] == 0) continue;
if(c[i]!=0) {
cout<<c[i];
l=1;
}
if(c[i]==0) {
if(l==0) continue;
if(l==1) cout<<0;
}
}
}
if(i1<i2){
int j=i2;
int jin=0;
for (int i = 0; i <= j; i++) {
if (i2 - i >= 0 && i1 - i >= 0) {
c[i] = ( b[i2 - i]- a[i1 - i] - jin+10) % 10;
if(b[i2-i]-a[i1-i]-jin>=0) jin=0;
else jin=1;
}
if (i2 - i >= 0 && i1 - i < 0) {
c[i] = (b[i2 - i] - 48 - jin) % 10;
jin=0;
}
}
cout<<"-";
bool l=0;
for (int i = i2; i >= 0; i--) {
if (i == i2 && c[i] == 0) continue;
if(c[i]!=0) {
cout<<c[i];
l=1;
}
if(c[i]==0) {
if(l==0) continue;
if(l==1) cout<<0;
}
}
}
if(i1==i2){
bool f=1;
for(int i=1;i<=i1;i++){
if(a[i]<b[i]){
f=0;
break;
}
}
if(f==1){
int j=i1;
int jin=0;
for (int i = 0; i <= j; i++){
c[i] = (a[i1 - i] - b[i2 - i] - jin+10) % 10;
if(a[i1-i]-b[i2-i]-jin>=0) jin=0;
else jin=1;
}
bool l=0;
for (int i = i2; i >= 0; i--) {
if (i == i2 && c[i] == 0) continue;
if(c[i]!=0) {
cout<<c[i];
l=1;
}
if(c[i]==0) {
if(l==0) continue;
if(l==1) cout<<0;
}
}
}
if(f==0){
int j=i2;
int jin=0;
for (int i = 0; i <= j; i++){
c[i] = ( b[i2 - i]- a[i1 - i] - jin+10) % 10;
if(b[i2-i]-a[i1-i]-jin>=0) jin=0;
else jin=1;
}
cout<<"-";
bool l=0;
for (int i = i2; i >= 0; i--) {
if (i == i2 && c[i] == 0) continue;
if(c[i]!=0) {
cout<<c[i];
l=1;
}
if(c[i]==0) {
if(l==0) continue;
if(l==1) cout<<0;
}
}
}
}
return 0;
}