| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3253 人关注过本帖
标题:请问一下有没有,小数化分数的代码?
只看楼主 加入收藏
zhyit
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-8-26
收藏
得分:0 
同意楼上,小数化分数就是个化简。

0。25 -- > 25/100 -> 1/4 ..

不用考虑循环吧。
0。33333333又不是0.3333333333333333333.................................?

呵呵。。
2006-08-26 22:46
zhyit
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-8-26
收藏
得分:0 
问一下10楼的。最大公约数的怎么求?
2006-08-26 22:50
waynebeat
Rank: 1
等 级:新手上路
帖 子:111
专家分:0
注 册:2006-8-26
收藏
得分:0 

#include<stdio.h>
void main()
{
int a,b,num1,num2,temp;
printf("输入两个正整数:");
scanf("%d,%d",&num1,&num2);
if(num1<num2)
{
temp=num1;
num1=num2;
num2=temp;
}
a=num1;b=num2;
while(b!=0)
{
temp=a%b;
a=b;
b=temp;
}
printf("最大公约数为%d",a);
}


只剩一年了………… 够了!
2006-08-26 23:16
zhyit
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-8-26
收藏
得分:0 
while(b!=0)
{
temp=a%b;
a=b;
b=temp;
}

原理??
2006-08-26 23:38
ligt0610
Rank: 1
等 级:新手上路
帖 子:204
专家分:5
注 册:2006-6-29
收藏
得分:0 
原理应该在学数据结构的时候有讲的

通过不断的学习与思考才是提高自己能力的最好途径。。。。。。。
2006-08-28 14:22
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 

先生成分母是10的N次方的分数,然后分子分母求最大公约数。


http://myajax95./
2006-08-28 16:02
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
ligt0610
Rank: 1
等 级:新手上路
帖 子:204
专家分:5
注 册:2006-6-29
收藏
得分:0 
用大数做

通过不断的学习与思考才是提高自己能力的最好途径。。。。。。。
2006-08-29 23:45
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-30 15:30
快速回复:请问一下有没有,小数化分数的代码?
数据加载中...
 
   



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

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