高级程序员教程上的一个问题,长整数除普通整数,结果似乎不对。

menghui1 2003-08-21 10:01:13
长整数除普通整数函数
长整数除普通整数函数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倍,不知是书上错了,还是我考虑不全,请指教!
...全文
31 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pebble 2003-09-28
  • 打赏
  • 举报
回复
p=a[0]; /* 是否应为p=a[0]/10*/
对,这一句应该是p=a[0]/10
zy155 2003-09-28
  • 打赏
  • 举报
回复
p=a[0]/10
哈哈,对的,我一开始都没发现。
谢谢了
cx1981 2003-09-27
  • 打赏
  • 举报
回复
还有我认为规整函数在这个程序里似乎不必要用啊~
caesar22 2003-08-21
  • 打赏
  • 举报
回复
代码中的a[p-1]+=a[p]*j*10,这句有错!我觉得该改为:a[p-1]=a[p-1]*10+a[p]*j
g961681 2003-08-21
  • 打赏
  • 举报
回复
我调试过了,应该是10倍的,书上错误太多了。

2,948

社区成员

发帖
与我相关
我的任务
社区描述
就计算机等级考试、软件初、中、高级不同级别资格考试相关话题交流经验,共享资源。
c1认证c4javac4前端 技术论坛(原bbs)
社区管理员
  • 软件水平考试社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧