使用数组精确计算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]); } }