#include
int main() { double number; double fm=0.1; scanf("%lf",&number); double substitute = number; double fz =number*0.1;
//消除小数点,得到未化简的分子与分母
do
{
substitute = substitute - (int)substitute;
substitute*=10;
fm*=10;
fz*=10;
} while ((int)substitute!=0);
//
//不断除以公约数,得到化简后的分子与分母
int result;
int control;
int min;
do
{
//判断大小
switch (fz>fm) {
case 1:
min = fm;
default:
min = fz;
}
//
//除以公约数
/*方法二:P16可见,利用循环次数已知,作为do-while的循环限制
for (control = 2;control<=min;control++) {
if ((int)fz %control == 0 && (int)fm % control == 0) {
fz/=control;
fm/=control;
break;
}
}
} while (control != min+1);
//输出结果
printf("%f的分式为%d/%d",number,(int)fz,(int)fm);
return 0;
}