使用数组精确计算M/N(0<M<N<=100)的值。如果M/N是无限循环,则计算并输出他的第一循环节,同时要求输出他的第一循环节的起始位置(小数位的序号)。
#include <stdio.h>
main(){
int m,n,i,c,d,e,f;
int a[100];
int b[100];
printf("please input one fenshu:");
scanf("%d/%d",&m,&n);
printf("\n");
printf("0.");
a[0]=0;
b[0]=m;
for(i=1; ; i++)
{
m=b[i-1]*10;
b[i]=m%n;
a[i]=m/n;
if(b[i]==0) break;
if(i>=2)
{
for(c=(i-1); c>=1; c--)
{
e=b[i];
f=b[c];
if(e==f) break;
}
if(c!=0)
{
printf(" %d %d",c,i-1);
break;
}
}
printf("%d",a[i]);
}
}