浮点型转化为分式结构(方法二)P16

#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;

}

JSRUN前端笔记, 是针对前端工程师开放的一个笔记分享平台,是前端工程师记录重点、分享经验的一个笔记本。JSRUN前端采用的 MarkDown 语法 (极客专用语法), 这里属于IT工程师。