高级程序员教程上的一个问题,长整数除普通整数,结果似乎不对。
长整数除普通整数函数
长整数除普通整数函数div(int *a,int j)实现将存于a中德长整数除普通整数j,并将商存于a中,函数返回整除后的余数。
int divint(int *a,int j)
{ int p,k;
k=p=a[0];a[0]=0;
while(p>0)
{
a[p-1]+=a[p]%j*10;
a[p]=a[p]/j;
if(a[k]==0) k--;
p--;
}
p=a[0]; /* 是否应为p=a[0]/10?
a[0]=k;
formal(a); /* 长整数规整函数
retrun p;
}
我认为函数返回的整除以后的余数不对,为应该值的10倍,不知是书上错了,还是我考虑不全,请指教!