算法:
首先输出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;
}