高精度减法

#include
#include
#include
using namespace std;
int main(){
	int a[233],b[233],c[233],lena,lenb,lenc;
	char a1[233],b1[233];
	memset(a,0,sizeof(a));
	memset(b,0,sizeof(b));
	memset(c,0,sizeof(c));
	gets(a1);
	gets(b1);
	lena=strlen(a1);
	lenb=strlen(b1);
	if(lena<lenb||(lena=lenb&&strcmp(a1,b1)<0))
		swap(a1,b1),cout<<"-";
	for(int i=0;i<lena;i++){
		a[lena-i]=a1[i]-'0';
	}
	for(int i=0;i<lenb;i++){
		b[lenb-i]=b1[i]-'0';
	}
	lenc=1;
	while(lenc<=lena||lenc<=lenb){
		if(a[lenc]<b[lenc]){
			a[lenc]+=10;
			a[lenc+1]-=1;
			 
		}
		c[lenc]=a[lenc]-b[lenc];
		lenc++;
	}
	while(c[lenc]==0&&lenc>1)   lenc--;
	for(int i=lenc;i>=1;i--){
		cout<<c[i];
	}
	cout<<endl;
	return 0;
} 

你可能感兴趣的:(c语言基础知识,C语言基本操作)