c的分数简单比较大小问题
sissi 2001-05-16 10:12:00
#define const 1e-37
main()
{
int i,j,n,a[50],k,f1,f2;
float min;
printf("input the date:");
scanf("%d",&n);
for (i=1;i<=n;i++) a[i]=1.0;
min=1;k=2;
while (a[n]!=n)
{
for (i=k;i<=n;i++)
if ((float)a[i]/i<=min)
if ((float)a[i]/(float)i==min) a[i]=a[i]+1;
else {min=(float)a[i]/(float)i;
f1=a[i];f2=i; /*if 1/3 larger 2/6*/
}
if (a[i]==i) k=k+1;
printf("%d/%d ",f1,f2);
a[f2]=a[f2]+1;min=1;
}
printf("%d\n",a[1]);
}
这是简单的最简分数从小到大输出,当赋值为6时,1/3与2/6比较,总是认为2/6小于1/3(只有当分数不可数时这样),如何解决?
在此小妹先谢过各位大虾了