为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C C# C++
weibo_殇雨916_0 2016-04-23 00:15:01
#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; }
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 1683 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信