int remainder[101],quotient[101]; /*remainder:存放除法的余数; quotient:依次存放商的每一位*/
void main()
{
int m,n,i,j;
printf("Please input a fraction(m/n)(<0scanf("%d/%d",&m,&n); /*输入被除数和除数*/
printf("%d/%d it's accuracy value is:0.",m,n);
for(i=1;i<=100;i++) /*i: 商的位数*/
{
remainder[m]=i; /*m:除的余数 remainder[m]:该余数对应的商的位数*/
m*=10; /*余数扩大10位*/
quotient[i]=m/n; /*商*/
m=m%n; /*求余数*/
if(m==0) /*余数为0 则表示是有限小数*/
{
for(j=1;j<=1;j++) printf("%d",quotient[j]); /*输出商*/
break; /*退出循环*/
}
if(remainder[m]!=0) /*若该余数对应的位在前面已经出现过*/
{
for(j=1;j<=i;j++) printf("%d",quotient[j]); /*则输出循环小数*/
printf("\n\tand it is a infinite cyclic fraction from %d\n",remainder[m]);
printf("\tdigit to %d digit after decimal point.\n",i);
/*输出循环节的位置*/
break; /*退出*/
}
}
}