大数减法C语言,被减数更小运行错误,新人,求指导

#include <stdio.h>
#include <string.h>
int main()
{
char a[1000],b[1000];
int c[1002]={0};
int n[1000]={0},m[1000]={0};
int p=0;
int i,l,j,x,y,flag=1,k=0;
gets(a);
gets(b);
x=strlen(a);
y=strlen(b);
for (i=0,j=x-1;i<x;i++,j–)
{ n[i]=a[j]-‘0’; }
for (i=0,j=y-1;i<y;i++,j–)
{ m[i]=b[j]-‘0’; }
k=x>y?x:y;
if(x<y)
{ flag=0; }
else
{ flag=1; }
if(x==y)
{
for(l=0;l<=x;l++)
{
if(a[l]>b[l])
{ break; }
}
if(l<=x)
{ flag=1;}
else
{ flag=0; }
}
if(flag=0)
{
for(l=0;l<=k;l++)
{
p=0;
if(m[l]<n[l])
{
m[l+1]–;
p=10;
}
if(l==k||m[l]==n[l])
{
c[l]=’\0’;
break;
}
c[l]=m[l]+p-n[l];
}
printf("-");
l–;
for(;l>=0;l–)
{
printf("%d",c[l]);
}
}
if(flag=1)
{
for(l=0;l<=k;l++)
{
p=0;
if(n[l]<m[l])
{
n[l+1]–;
p=10;
}
if(l==k||n[l]==m[l])
{
c[l]=’\0’;
break;
}
c[l]=n[l]+p-m[l];
}
l–;
for(;l>=0;l–)
{
printf("%d",c[l]);
}
}
return 0;
}`

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值