c语言编程实现两个分数相加,C语言分数相加
完整的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语言编程实现两个分数相加,C语言分数相加相关推荐
- c语言gcb最小公倍数,C编序编程题目:输入两个正整数m和n,求其最大公约数和最小公倍...,C语言编程,输入两个正整数M和N(MN),计算M和N...
问题标题 C编序编程题目:输入两个正整数m和n,求其最大公约数和最小公倍...,C语言编程,输入两个正整数M和N(M 2019-3-27来自ip:15.121.164.188的网友咨询 浏览量:228 ...
- 有没有c 或c语言的短期培训学校,根河学c语言编程,根河学c语言编程的学校,根河学c语言编程报个培训班怎么样...
根河学c语言编程,根河学c语言编程的学校,根河学c语言编程报个培训班怎么样 首页 > 软件 > 根河学c语言编程 作者:镀金池 发布时间:2017-11-30 11:02 另外,尽早调 ...
- 8051单片机c语言编程模板,完美的8051单片机C语言编程模板.doc
完美的8051单片机C语言编程模板.doc <8051单片机C语言编程模板> [程序开始处的程序说明] /***************************************** ...
- c语言编程规范总结,【技术小记 | C语言】C 语言编程规范
image 欢迎大家访问我的个人博客:吴佳轶 | WuJiaYi,第一时间获取最新的文章. 规范制定说明 本套C语言编程规范为提高代码质量.便于维护.协同编码.可移植等特点而编写.要求所有参与编码人员 ...
- 红灯停绿灯行c语言编程,基于物联网应用的《C语言程序设计》教学模式研究
[摘要] 物联网是信息技术的最新发展发向,C语言程序设计又是物联网相关专业中的基础课,在物联网中的应用广泛,本文结合所任教的技工院校学生特点,在分析了C语言教学中存在的问题后,对C语言的教学模式进行了 ...
- c语言编程输出指定范围的素数,C语言输出范围内所有素数
用C语言输出100之间的所有质数 用C语言输出100之间的所有质数. 各位. 首先新建一个空白的c语言文件,引入头文件,头文件中包括math库,稍后会用到,建立主函数: 主函数上面新建一个判断素数的函 ...
- c8051f c语言编程,C8051F系列单片机开发与C语言编程
C8051F系列单片机开发与C语言编程 维普资讯 http://doc.xuehai.net 雎 A 21进行控制,这样可以选择不同的地址,进而控制的读写. S D1 5 E 6对应的内存和寄存器. ...
- 数学在c语言编程中的历史,用计算机C语言编程解古代数学题
用计算机C语言编程解古代数学题 C语言广泛的应用于基础软件.桌面系统.网络通信.音频视频.游戏娱乐等诸多领域.是世界上使用最广泛的编程语言之一本文由论文联盟http://www.LWlm.cOm收集整 ...
- 基于c语言编程思路的实践与探索,C语言程序设计趣味教学探索与实践
张竞丹 王乐 江武汉 范金坪 管明祥 摘要:"C语言程序设计"是高等职业教育中计算机.电子专业的专业基础课程,在其专业课程体系中具有重要的作用.文章针对高职院校"C语言程 ...
- 用C语言编程网上购物系统,华中科技大学C语言课程设计报告 -- 网上购物管理系统.pdf...
华中科技大学自动化学院 C 语言课程设计报告 网上购物管理系统 专 业:自 动 化 班 级:自动化1306 班 组 员: 指导教师:周纯杰 何顶新 彭刚 周凯波 完成时间:2014 年11 月7 日星 ...
最新文章
- 力扣(LeetCode)刷题,简单题(第10期)
- android studio sdk升级失败解决
- Node.js中模块加载机制
- Flume NG 简介及配置实战
- WinForm之创建word并操作文档
- c语言哪个编译软件能够将整个工程自动生成调用图_这10个C语言技巧让初学者少走180天弯路!...
- hduoj2094产生冠军
- NiceScroll文档阅读笔记-NiceScroll(3.7.6)基本使用
- SpringBoot实战教程(5)| 整合Freemaker
- java控制台打印输出改个颜色吧
- Java I/O系统之Print 流
- C#初始化结构体数组方式
- Laravel的介绍安装和启动
- 2.1 A k-armed Bandit Problem
- wamp 增加php 7.2,wamp环境下php7.2升级,WAMP本地环境升级php7+版本
- Linux页高速缓存与文件读写
- java 量化指标_量化投资学习笔记13——各种指标的绘图、计算及交易策略
- 工作三年程序员收入到底多高?透露收入:网友:哇,真的好高呀!
- 2020年5G通信工程类项目一览,哪些企业成功抢滩?
- NASA 美国国家航空航天局开源 253 个 NASA 软件项目
热门文章
- re:从零开始的Qt世界冒险生活
- 计算机磁盘管理和容量不一致,官方数据:为什么硬盘可用容量显示错误,以及硬盘容量与实际情况不符的原因...
- 快应用中心运营平台项目心得
- 视觉检测设计与实践答题卡检测实验报告
- linux非root用户如何将自己安装的python添加到环境变量
- 钡铼技术IO模块—专业独立式io模块
- CSS滤镜实现鼠标悬停图片变黑白(灰色)
- java关于对于word或者pdf文件的批量下载实现,其中包括(Java实现创建word文档模板,根据模板导出word文档)
- 核桃编程学python吗_西瓜编程和核桃编程哪个好
- syn泛洪 过滤_SYN泛洪攻击详解