C语言分数相加
2014-05-15 20:51
357 查看
完整的C程序: #include "stdio.h" typedef struct { int numerator; int denominator; } Fraction; int GCD(int a,int b); int LCM(int a,int b); Fraction Add(Fraction f1, Fraction f2); void main() { Fraction f1, f2, f3; f1.numerator = 1; f1.denominator = 3; f2.numerator = 1; f2.denominator = 6; f3 = Add(f1, f2); printf("%d/%d + %d/%d = %d/%d\n", f1.numerator, f1.denominator, f2.numerator, f2.denominator, f3.numerator, f3.denominator); } Fraction Add(Fraction f1, Fraction f2) { Fraction retValue; int lcm = LCM(f1.denominator, f2.denominator); int gcd; retValue.denominator = lcm; retValue.numerator = f1.numerator * lcm / f1.denominator + f2.numerator * lcm / f2.denominator; gcd = GCD(retValue.numerator, retValue.denominator); retValue.numerator /= gcd; retValue.denominator /= gcd; return retValue; } int GCD(int a,int b) { int i,temp_gcd; for(i=a;i>=1;i--) { if(a%i==0) { if(b%i==0) { temp_gcd=i; return temp_gcd; } } } } int LCM(int a,int b) { int temp_lcm; temp_lcm = a * b / GCD(a,b); return temp_lcm; }
完整的C程序: #include "stdio.h" typedef struct { int numerator; int denominator; } Fraction; int GCD(int a,int b); int LCM(int a,int b); Fraction Add(Fraction f1, Fraction f2); void main() { Fraction f1, f2, f3; f1.numerator = 1; f1.denominator = 3; f2.numerator = 1; f2.denominator = 6; f3 = Add(f1, f2); printf("%d/%d + %d/%d = %d/%d\n", f1.numerator, f1.denominator, f2.numerator, f2.denominator, f3.numerator, f3.denominator); } Fraction Add(Fraction f1, Fraction f2) { Fraction retValue; int lcm = LCM(f1.denominator, f2.denominator); int gcd; retValue.denominator = lcm; retValue.numerator = f1.numerator * lcm / f1.denominator + f2.numerator * lcm / f2.denominator; gcd = GCD(retValue.numerator, retValue.denominator); retValue.numerator /= gcd; retValue.denominator /= gcd; return retValue; } int GCD(int a,int b) { int i,temp_gcd; for(i=a;i>=1;i--) { if(a%i==0) { if(b%i==0) { temp_gcd=i; return temp_gcd; } } } } int LCM(int a,int b) { int temp_lcm; temp_lcm = a * b / GCD(a,b); return temp_lcm; }
相关文章推荐
- c语言分数计数程序
- JAVA 程序设计 3-1 分数相加
- 第五届蓝桥杯Java语言C组_单位分数
- VC++与汇编语言混合编程事例-----两个无符号整数相加
- 程序猿之---C语言细节7(检测两个整型相加是否溢出)
- C 语言 超大数相加和求余
- 1169C语言实验——分数序列
- go语言里时间相加,在一个时间段里加几天
- 一正一负倒腾相加的分数
- 计161_Problem K: C语言实验——分数序列
- C语言分数的正负交叉累加
- C语言实验——分数序列
- 易语言相加命令使用讲解
- 分数相加
- 分数相加-
- 汇编语言一 利用移位,传送和相加指令实现AX的内容扩大十倍。
- N个分数相加=1
- nyoj-131 小数相加 循环小时转换分数
- 数据结构(java语言描述)顺序栈的使用(两个大数相加)
- <c语言经典100例>c32 大数相加