C语言中两个整型数据的高精度除法

算法:

首先输出x/y的整数部分,对其余数u=x%y试商n次,以满足精度要求。

每次试商:x=u*10为被除数,y为除数,商x/y(整数)作为结果的一位打印输出,余数为u=x%y。若u不等于0,继续试商,直到u=0或是达到试商的n位为止。

算法来自:杨克昌编著《计算机程序设计典型例题精解》之高精度窗,国防科技大学出版社出版。

/*两个整数数据的高精度除法*/
#include<stdio.h>
int main()
{
long int x,y,u,n;
printf("请输入两个整数:\n");
scanf("%d%d",&x,&y);
printf("您想输出小数点后几位?(如果可以整除,只需要输出小数点后一个0)\n");
scanf("%d",&n);
printf("结果:\n");
printf("%d/%d=\n%d.",x,y,x/y);
   while(n--)
   {
    u=x%y;
    x=u*10;
    printf("%d",x/y);
    if(u==0)
     break;
    if(n%10==0)
     printf("\n");
   }
   printf("\n");
   return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值