听听高手的想法~
如题:读入自然数m和n(0<=m<n<=1000),判断分数m/n是有限小数还是无限小数。如果m/n是有限小数,则输出分数的值;如果m/n为循环小数,则把循环部分括在括号中打印出来~

游过这里!
程序代码:main()
{
int i,j,m,n,a[1001],t;
scanf("%d%d",&m,&n);
for(t=m,i=0;i<1000;i++)
{
a[i]=t*10/n;
t=(t*10)%n;
if(t==0 || t==m )break;
}
printf("%d/%d=0.",m,n);
if(t==0)
for(j=0;j<=i;j++)printf("%d",a[j]);
if(t==m)
{
printf("(");
for(j=0;j<=i;j++)printf("%d",a[j]);
printf(")");
}
printf("\n");
}

程序代码:main()
{
int i,j,m,n,a[1001],t,at[1001]={0},startloop;
scanf("%d%d",&m,&n);
for(t=m,i=0;i<1000;i++)
{
a[i]=t*10/n;
t=(t*10)%n;
at[i]=t;
for(startloop=0;startloop<i;startloop++)
if(t==at[startloop])
{
t=-1;
break;
}
if(t==-1 || t==0 || t==m )break;
}
printf("\n%d/%d=0.",m,n);
if(t==0)
for(j=0;j<=i;j++)printf("%d",a[j]);
if(t==-1)
for(j=0;j<=startloop;j++)printf("%d",a[j]);
if(t==m) startloop=-1;
if(t==m || t==-1)
{
printf("(");
for(j=startloop+1;j<=i;j++)printf("%d",a[j]);
printf(")");
}
printf("\n");
}........
