openJUDGE 11题大整数减法上出现runtime error
#include<stdio.h>inta[201]={0},b[201]={0};intmain(){inti,j,n;charc;intlongi,longj,i2,...
#include<stdio.h>
int a[201]={0},b[201]={0};
int main()
{
int i,j,n;
char c;
int longi,longj,i2,j2;
int k;
i=200;j=200;n=0;
while(n==0)
{
scanf("%c",&c);//读入a的值
if(c==10) n++;
else
{
a[i]=c-48;
i--;
}
}
while(n==1)
{
scanf("%c",&c);//读入b的值
if(c==10) n++;
else
{
b[j]=c-48;
j--;
}
}
longi=200-i;//计算a,b长度
longj=200-j;
i2=1;j2=1;
if(longi!=200)//将a,b拉齐
{
while(i<200)
{
a[i2]=a[i+1];
a[i+1]=0;
i2++;i++;
}
}
if(longj!=200)
{
while(j<200)
{
b[j2]=b[j+1];
b[j+1]=0;
j2++;j++;
}
}
for(i=1;i<=200;i++)
{ a[i]-=b[i];//计算a-b的值
if(a[i]<0)
{
a[i+1]--;//防止负数
a[i]+=10;
}
}
for(i=200;i>=1;i--)
if(a[i]!=0) break;//去零
for(k=i;k>=1;k--)
printf("%d",a[k]);//输出值
return 0;
}
挺急的,在线等 展开
int a[201]={0},b[201]={0};
int main()
{
int i,j,n;
char c;
int longi,longj,i2,j2;
int k;
i=200;j=200;n=0;
while(n==0)
{
scanf("%c",&c);//读入a的值
if(c==10) n++;
else
{
a[i]=c-48;
i--;
}
}
while(n==1)
{
scanf("%c",&c);//读入b的值
if(c==10) n++;
else
{
b[j]=c-48;
j--;
}
}
longi=200-i;//计算a,b长度
longj=200-j;
i2=1;j2=1;
if(longi!=200)//将a,b拉齐
{
while(i<200)
{
a[i2]=a[i+1];
a[i+1]=0;
i2++;i++;
}
}
if(longj!=200)
{
while(j<200)
{
b[j2]=b[j+1];
b[j+1]=0;
j2++;j++;
}
}
for(i=1;i<=200;i++)
{ a[i]-=b[i];//计算a-b的值
if(a[i]<0)
{
a[i+1]--;//防止负数
a[i]+=10;
}
}
for(i=200;i>=1;i--)
if(a[i]!=0) break;//去零
for(k=i;k>=1;k--)
printf("%d",a[k]);//输出值
return 0;
}
挺急的,在线等 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询