链接:https://pan.baidu.com/s/1qDdBkFPakLtCvh8_W2wiog
提取码:x3zg
#include<iostream>
#include<cmath> //调用求浮点数的绝对值函数fabs()
using namespace std;
int main()
{
double x,y;
long long a,b,i,j;
cout<<"请输入一个纯小数"<<endl;
do
{
cout<<"x=";
cin>>x;
}while(x>=1||x<=0);
a=1;
y=x;
while(fabs(y-(int)y)>1e-10) //纯小数化成整数
{
a*=10;
y=x*a; //不可以写成 y=y*10;
} //因误差不停的扩大,会出现死循环
b=y;
cout<<b<<‘/‘<<a<<endl;
for(i=b;i>=1;i--) //求出a和b的最大公约
if(b%i==0&&a%i==0)
{
j=i; //找出最大公约数后,赋值给j
break; //退出循环
}
cout<<"最简分数为:";
cout<<b/j<<‘/‘<<a/j<<endl;
return 0;
}
原文:https://www.cnblogs.com/kixiaoyuan/p/12702353.html