为什么在C++上运行正确的程序在这里只有三十分
查看原帖
为什么在C++上运行正确的程序在这里只有三十分
370425
SCP_基金会楼主2020/8/9 12:00

大佬们帮忙看看

#include <iostream>
#include <cstring>
using namespace std;
int main(){
	char a1[1001]={},b1[1001]={};
	int a[1001]={},b[1001]={},c[1001]={};
	cin>>a1>>b1;
	int lena=strlen(a1);
	int lenb=strlen(b1);
	bool flag=false;
	if(lena<lenb){
		flag=true;
	}else if(lena==lenb){
		for(int i=0;i<lena;i++){
			if(a1[i]>b1[i]){
				break;
			}else if(b1[i]>a1[i]){
				flag==true;
				break;
			}
		}
	}
	if(flag){
		swap(a1,b1);
		cout<<"-";
	}
	lena=strlen(a1);
	lenb=strlen(b1);
	for(int i=0;i<lena;i++){
		a[lena-i-1]=a1[i]-48;
	}
	for(int i=0;i<lenb;i++){
		b[lenb-i-1]=b1[i]-48;
	}
	int lenc=0;
	while(lenc<lena||lenc<lenb){
		if(a[lenc]<b[lenc]){
			a[lenc+1]--;
			a[lenc]+=10;
		}
		c[lenc]=a[lenc]-b[lenc];
		lenc++;
	}
	while(c[lenc]==0&&lenc>0){
		lenc--;
	}
	for(int i=lenc;i>=0;i--){
		cout<<c[i];
	}
2020/8/9 12:00
加载中...