猿问

关于大整数减法,不知道为啥输入像4-5就=-9

#include<iostream>
#include<stdio.h>
#include<string.h>
int a[200]={0},b[200]={0},c[200]={0};
int max1,m,n,min1;
char s1[200],s2[200];
void convert()
{
	int i,j;
	for(i=m-1,j=0;i>=0;i--,j++)
        {
            a[j]=s1[i]-48;
        }
        for(i=n-1,j=0;i>=0;i--,j++)
        {
            b[j]=s2[i]-48;
        }
}
void numdecline()//减法 
{
	int i, flag;
	char temp[200];
	if(max1=m)
	{
		flag=1;
	}
	else if(strcmp(s1,s2)>0)
	{
		flag=1;
	}
	else
	{
		flag=-1;
		strcpy(temp,s1);
                strcpy(s1,s2);
                strcpy(s2,temp);
	}
	convert();
	for(i=0;i<max(m,n);i++)
	{
		a[i]=a[i]-b[i];
		if(a[i]<0)
		{
			a[i]+=10;
			a[i+1]=a[i+1]-1;
		}
	}
	i=max(m,n)-1;
	while(a[i]==0){
		i--;}
	if(flag=-1)
	{
		a[i]*=-1;
	}
	for(;i>=0;i--)
	{
		printf("%d",a[i]);
	}
} 
int main()
{
	while(scanf("%s%s",s1,s2)==2)
	{
		int i,j;
		m=strlen(s1);
		n=strlen(s2);
		max1=max(m,n);
		printf("两数相减为\n");
		numdecline();
		printf("\n");
	}
	printf("\n");
	return 0;
}


weibo_殇雨916_0
浏览 1684回答 1
1回答
随时随地看视频慕课网APP
我要回答