| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3251 人关注过本帖
标题:请问一下有没有,小数化分数的代码?
取消只看楼主 加入收藏
JerryChen
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-8-14
收藏
 问题点数:0 回复次数:5 
请问一下有没有,小数化分数的代码?
请问一下有没有,小数化分数的代码?
搜索更多相关主题的帖子: 小数 代码 化分 
2006-08-19 23:05
JerryChen
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-8-14
收藏
得分:0 

这道题相当难,不像楼上的说得那么简单。

比如3.3333要化成10/3;0.25要化成1/4。就是这个意思。看有没有什么办法。

2006-08-25 21:29
JerryChen
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-8-14
收藏
得分:0 

谢谢,你看这个有什么问题? 可以通过,但最后"killing process"

#include<stdio.h>
#include<ctype.h>
main()
{char ch[30];
double m;
int k,j=1;
clrscr();
printf("Input decimal fraction:\n");
scanf("%f",&m);
k=getint(m);
while(m!=k)
{m*=10;
k*=10;
j*=10;
}
m=m/zdgys(m,j);
j=j/zdgys(m,j);
printf("The fenshu is %d/%d",m,j);
}
int getint(double a)
{int l;
l=(int)a;
return l;
}
zdgys(int c,int d)
{double o,p;
o=1;p=1;
while(c/o!=d/p)
{while(c/o>d/p)
o++;
while(c/o<d/p)
p++;
}
while(c/o==d/p)
return (c/o);
}

2006-08-28 21:21
JerryChen
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-8-14
收藏
得分:0 
/*小数化分数,非循环*/
#include<stdio.h>
#include<ctype.h>
main()
{ double m,kd,j=1;
int k;
clrscr();
printf("Input decimal fraction:\n");
scanf("%1f",&m);
k=(int)m;
kd=(double)k;
while(m!=kd)
{m*=10;
j*=10;
k=(int)m;
kd=(double)k;
}
m=m/zdgys(m,j);
j=j/zdgys(m,j);
printf("The fenshu is %1f,%1f",m,j);
}
zdgys(int c,int d)
{double o,p;
o=1;p=1;
while(c/o!=d/p)
{while(c/o>d/p)
o++;
while(c/o<d/p)
p++;
}
while(c/o==d/p)
return (c/o);
} 又改了一下,能通过,但这次显示的是overflow,一定是double,int转换出了问题,但我找不出来.大家帮忙看看
2006-08-29 17:12
JerryChen
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-8-14
收藏
得分:0 
k=(int)m;
kd=(double)k;
while(m!=kd)
{m*=10;
j*=10;
k=(int)m;
kd=(double)k;
}
我后来改了。m和kd都是double型
2006-08-31 23:41
JerryChen
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-8-14
收藏
得分:0 
/*小数化分数,非循环*/
#include<stdio.h>
#include<ctype.h>
#include<math.h>
double zdgys(double c,double d)
{double o,p;
o=1;p=1;
while(c/o!=d/p)
{while(c/o>d/p)
o++;
while(c/o<d/p)
p++;
}
while(c/o==d/p)
return (c/o);
}
main()
{ double m,im,j=1;
int l;
/* clrscr(); */
printf("Input decimal fraction:\n");
scanf("%f",&m);
im=floor(m);
while(m!=im)
{m*=10;
j*=10;
im=floor(m);
}
l=zdgys(m,j);
m=m/l;
j=j/l;
printf("The fenshu is %f,%f",m,j);
}
最新编的程序,能够通过编译,输入完数字之后,不出结果,但光标还在闪。请问问题可能出现在什么地方。
2006-09-07 12:07
快速回复:请问一下有没有,小数化分数的代码?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023643 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved