小数转化为分数
输入一个小于1的正小数,分别输出最简分数的分子和分母。
此代码的目的是简单快速的求出有限位小数对应的最简真分数。
C语言代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | # 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; } |
本人计算机小白一枚,对编程有浓厚兴趣,在此贴出自己的计算机学习历程,还有很多不足,望多多指教!
读书后发现好多的内容与具体专业有偏差,没来得及完成,虽然“有时间我就会做...”是人生最大的谎言,但有时间我会继续搞定未完成的内容,有始有终,兴趣使然!
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步