测试点不是WA就是RE
但是数据下载下来试一下答案是对的 为什么过不了 求助
#include<bits/stdc++.h>
using namespace std;
int a[256],b[256],c[256];
char n[256],n1[256],n2[256];
int main(){
gets(n1);
gets(n2);
//比较两个字符串大小,哪个大哪个做被减数,输出负号结果为负数,strcmp为比较函n1<n2返回负整数
if(strlen(n1) < strlen(n2) || (strlen(n1) == strlen(n2) && strcmp(n1,n2) < 0)){
strcpy(n,n1);
strcpy(n1,n2);
strcpy(n2,n);
cout << "-";
}
int lena = strlen(n1);
int lenb = strlen(n2);
for(int i = 0 ; i < lena ; i++){
a[lena - i] = n1[i] - '0';
}
for(int i = 0 ; i < lenb ; i++){
b[lenb - i] = n2[i] - '0';
}
int lenc;//结果的长度
while(lenc <= lena || lenc <= lenb){
if(a[lenc] < b[lenc]){
a[lenc] += 10;
a[lenc + 1]--;//借位
}
c[lenc] = a[lenc] - b[lenc];
lenc++;
}
while((c[lenc] == 0) && (lenc > 1)){//删除前导0
lenc--;
}
for(int i = lenc ; i >= 1 ; i--){
cout << c[i];//因为倒着存,所以倒着输出
}
cout << endl;
return 0;
}