求助!只有20分!
查看原帖
求助!只有20分!
822713
mxdyeah楼主2023/7/15 16:20
#include<bits/stdc++.h>
using namespace std;
int main(){
	char num1[256],num2[256];
	int n1[256],n2[256];
	cin>>num1>>num2;
	int len1=strlen(num1),len2=strlen(num2);
	memset(n1,0,sizeof(n1));
	memset(n2,0,sizeof(n2));
	
	if(len1<len2 || len1==len2 && strcmp(num1,num2)<0){
		char temp[256];
		memset(temp,0,sizeof(temp));
		strcpy(temp,num1);
		strcpy(num1,num2);
		strcpy(num2,temp);
		cout<<"-"; 
		swap(len1,len2);
	}
	//	else if(len1==len2){
	//		int k=0;
	//		while(num1[k]==num2[k] and k<len1-1){
	//			k++;
	//		}
	//		if(num1[k]<num2[k]){
	//			char temp[256];
	//			strcpy(temp,num1);
	//			strcpy(num1,num2);
	//			strcpy(num2,temp);
	//			cout<<"-";
	//			swap(len1,len2);
	//		}
	//	}
	for(int i=len1-1,j=0;i>=0;i--,j++){
		n1[j]=num1[i]-'0';
	}
	for(int i=len2-1,j=0;i>=0;i--,j++){
		n2[j]=num2[i]-'0';
	}
	//	for(int i=0;i<len1;i++)
	//		cout<<n1[i]<<" ";
	//	for(int i=0;i<len2;i++)
	//		cout<<n2[i]<<" ";
	//	int res_len=len1<len2 ? len2:len1;
	int result[256];
	memset(result,0,sizeof(result));
	for(int i=0;i<len1;i++){
		result[i]=n1[i]-n2[i];
	}
	for(int i=0;i<=len1;i++){
		if(result[i]<0){
			result[i]+=10;
			result[i+1]--;
		}
	} 
	while(result[len1-1]==0 and len1>1){
		len1--;
	}
	for(int i=len1-1;i>=0;i--){
		cout<<result[i];
	}
	cout<<endl;
	return 0;
}

麻烦各位看看怎么了,我是从之前做的题里面复制的

2023/7/15 16:20
加载中...