10分求助
查看原帖
10分求助
800586
Woods_4325楼主2022/10/5 13:35

我自己试了很多数据感觉都没有错,但提交只有10分,其他都是wa

#include<stdio.h>
#include<string.h>

int* minus(int m[],int n[])
{
	static int k[10100]={0};
	int tmp=0;
	k[0]=m[0];
	int i=1;
	for(i=1;i<=k[0];i++)
	{
		tmp=m[i]-n[i];
		if(tmp>=0)
		{
			k[i]=tmp;
		}
		else
		{
			k[i]=tmp+10;
			m[i+1]--;
		}
	}
	while(k[0]>1&&k[k[0]]==0)
	{
		k[0]--;
	} 
	return k;
}

int main()
{
	char x[10100];//存入数据 
	gets(x);
	fflush(stdin);
	int a[10100]={0};
	a[0]=strlen(x);
	int len=a[0];
	int n=0;
	for(n=1;n<=len;n++)
	{
		a[n]=x[len-n]-'0';
	}
	char y[10100];
	gets(y);
	int b[10100]={0};
	b[0]=strlen(y);
	len=b[0];
	for(n=1;n<=len;n++)
	{
		b[n]=y[len-n]-'0';
	} 
	
	if(a[0]>b[0])
	{
		int* c=minus(a,b);
		int i=0;
		for(i=c[0];i>0;i--)
		{
			printf("%d",c[i]);
		}
	} 
	else if(a[0]<b[0])
	{
		int* c=minus(b,a);
		printf("-");
		int i=0;
		for(i=c[0];i>0;i--)
		{
			printf("%d",c[i]);
		}
	} 
	else if(strcmp(x,y)>=0)
	{
		int* c=minus(a,b);
		int i=0;
		for(i=c[0];i>0;i--)
		{
			printf("%d",c[i]);
		}
	} 
	else if(strcmp(x,y)<0)
	{
		int* c=minus(b,a);
		printf("-");
		int i=0;
		for(i=c[0];i>0;i--)
		{
			printf("%d",c[i]);
		}
	}
	
	return 0; 
} 
2022/10/5 13:35
加载中...