为什么一个点都不过
查看原帖
为什么一个点都不过
1206518
Nervegas楼主2024/5/19 17:09

测试点不是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;
} 
2024/5/19 17:09
加载中...