小数转化为分数
输入一个小于1的正小数,分别输出最简分数的分子和分母。
此代码的目的是简单快速的求出有限位小数对应的最简真分数。
C语言代码如下:
# include <stdio.h> # include <string.h> // 判断两个整数的最大公约数是否为1 int is_prime(int a, int b) { while (a != b) { a>b?(a-=b):(b-=a); } return b; } int main(void) { char ch[50]; int a=0, b=1; int i = 0, flag=0,temp; gets(ch); // 读取尾数长度 while (ch[i]) { if (flag == 1) { a += (ch[i]-'0'); a *= 10; b *= 10; } if (flag==0 && ch[i]=='.') flag = 1; i++; } a /= 10; temp = is_prime(a,b); while (1 != temp) { a /= temp; b /= temp; temp = is_prime(a,b); } printf("%d %d\n",a,b); return 0; }
本人计算机小白一枚,对编程有浓厚兴趣,在此贴出自己的计算机学习历程,还有很多不足,望多多指教!
读书后发现好多的内容与具体专业有偏差,没来得及完成,虽然“有时间我就会做...”是人生最大的谎言,但有时间我会继续搞定未完成的内容,有始有终,兴趣使然!