有理数加法要简化c语言编程,两个有理数相加(要求输入时以分数形式,输出时也以分数形式)...
上大一,老师布置了一道题,内容就是:两个有理数相加(要求输入时以分数形式,输出时也以分数形式),这道题用了大概2个多小时吧(欢迎指导),废话不多说了,直接上程序:
#include
using namespace std;
class rational
{
public:
void setnumber(int n,int d);
void getnumber(int& n,int& d);
void gcd(int n,int d);
bool operator==(int)const;
rational operator+(const rational& r) const;
rational operator-(const rational& r) const;
rational operator*(const rational& r) const;
rational operator/(const rational& r) const;
private:
int numerator;
int denominator;
};
void rational::setnumber(int n,int d)
{
numerator=n;denominator=d;
}
void rational::getnumber(int& n,int& d)
{
n=numerator;d=denominator;
}
void rational::gcd(int n,int d)
{
int a,b,c;
a=n;b=d;
if(n>d)
{
do
{
c=a%b;
a=b;
b=c;
}while(c=0);
numerator=n/a;
denominator=d/a;
}
else
{
do
{
c=b%a;
b=a;
a=c;
}while(c=0);
numerator=n/b;
denominator=d/b;
}
}
istream& operator>>(istream& is,rational& r)
{
int n,d;
is>>n;
is.ignore(1);
is>>d;
r.setnumber(n,d);
return is;
}
ostream& operator<
{
int n,d;
r.getnumber(n,d);
os<
return os;
}
bool rational::operator==(int)const
{
if(denominator==0)
return true;
else
return false;
}
rational rational::operator+(const rational& r) const
{
rational temp;
temp.numerator=numerator*r.denominator+r.numerator*denominator;
temp.denominator=denominator*r.denominator;
return temp;
}
rational rational::operator-(const rational& r) const
{
rational temp;
temp.numerator=numerator*r.denominator-r.numerator*denominator;
temp.denominator=denominator*r.denominator;
return temp;
}
rational rational::operator*(const rational& r) const
{
rational temp;
temp.numerator=numerator*r.numerator;
temp.denominator=denominator*r.denominator;
return temp;
}
rational rational::operator/(const rational& r) const
{
rational temp;
temp.numerator=numerator*r.denominator;
temp.denominator=denominator*r.numerator;
return temp;
}
void main()
{
int n,d;
char ch;
rational r1;
rational r2;
rational r3;
cin>>r1;
cin>>ch;
cin>>r2;
if(r1==0||r2==0)
{
cout<
}
else
{
switch(ch)
{
case‘+‘:
r3=r1+r2;
break;
case‘-‘:
r3=r1-r2;
break;
case‘*‘:
r3=r1*r2;
break;
case‘/‘:
r3=r1/r2;
break;
default:
cout<
}
r3.getnumber(n,d);
r3.gcd(n,d);
r3.getnumber(n,d);
cout<
}
}
由于对博客不熟悉,不会发图片,就这样子了,看不懂的可以提问题。
时间: 04-06
有理数加法要简化c语言编程,两个有理数相加(要求输入时以分数形式,输出时也以分数形式)...相关推荐
- C语言将两个数字相加,然后将和作为链接列表返回(附完整源码)
C语言将两个数字相加,然后将和作为链接列表返回 C语言将两个数字相加,然后将和作为链接列表返回完整源码(定义,实现,main函数测试) C语言将两个数字相加,然后将和作为链接列表返回完整源码(定义,实 ...
- 二维数组c语言矩阵加法,C 语言实例 – 两个矩阵相加 - C 语言基础教程
C 语言实例 使用多维数组将两个矩阵相加. #include int main(){ int r, c, a[100][100], b[100][100], sum[100][100], i, j; ...
- 【C语言】编写一个程序,当输入小写字母a,输出大写字母Z,当输入小写字母b,输出大写字母Y,以此类推,当输入小写字母z,输出大写字母A。
这个问题不仅仅是将字母转化成对应的小写或者大写字母.那我们应该怎么来解决呢,首先我们分析一下这个问题. 当输入的字母由a变为b时,对应的输出由Z编程Y,我们知道字符在内存中是以ASCII码值的形式存储 ...
- c语言编程两人对战五子棋,c语言写的五子棋人与人对战
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #define m 30 int main (void) { int count;//计数器算横纵行的结果 int w ...
- C语言编程 5.7 从键盘中输入一个英文字母,如果它是大写则转化为小写。如果它是小写则转化为大写,并将其ASCll码显示到屏幕上。
方法一: #include <stdio.h> void main() { char ch; printf("请输入字母"); ch=getchar() ...
- c语言编程存款问题,c程序问题输入存款金额money存期yea...
2016-11-16 19:23最佳答案 main1().运价计费尾数四舍五入;stdio;5,输入行驶里程与等待时间;);3; case 2,如果带返回值这是使用前的定义或者声明;).\,输出时保留 ...
- c语言编程 0-6的数字对应星期,输入一个数字0~6 用中英文显示星期几 如何用vb编程...
满意答案 stivr 推荐于 2017.09.28 采纳率:41% 等级:12 已帮助:28014人 新建VB工程,添加一个Text1和一个Command1,然后复制以下代码: Private ...
- c语言16进制按10进制输出,C语言编程:写一个函数,输入一个16进制数,输出相应的10进制数。...
满意答案 chengexin 2013.05.27 采纳率:59% 等级:11 已帮助:10599人 #include #include #include #define N 1000 char ...
- C语言编程:求水仙花数。输入一个正整数n,计算n位水仙花数。
/*求水仙花数.输入一个正整数n,计算n位水仙花数.*/ #include<stdio.h> //编译预处理命令int mypow (int x, int n); //声明自己的幂函数in ...
最新文章
- 【Java】排序算法 之 【归并排序】 总结
- 首个获得FDA批准的脑机接口设备:“突破性”脑机接口设备用于造福人类
- 点击弹窗 input直接是待输入状态_第六课:你知道如何用两行代码做个弹窗吗?看这里...
- 中object转为list集合_java基础集合小结
- jq 地区(省市县区)联动菜单
- Know more about commit
- 《统一沟通-微软-技巧》-14-Exchange 2010 With SP1-2-UM Integration-1
- jQuery杂项进阶(四)
- 网易云音乐的算法有什么特点_当算法设计音乐厅时会发生什么?
- jquery 逗号分割截取字符串_Python中常用的8种字符串操作方法
- termux 开启 sshd
- 手把手教你搭建LyncServer2013之发布Office Web App服务器(十二)
- Java中继承方法的使用,以及使用方法的注意事项,继承方法重写的理解,白话文详解,简单易理解
- js调用摄像头拍照,js调用摄像头在线拍照,js调用电脑摄像头拍照
- 局域网打印机怎么连接_苹果手机怎么连打印机?苹果系统怎么连接网络打印机?一看就会...
- android 版本选择,谷歌服务框架版本如何选择 我该下载哪个版本解析
- C语言使用栈和队列实现停车场管理
- Android 11.0 自定义仿小米全面屏手势导航左右手势滑动返回UI效果
- JAVA课程设计(小游戏贪吃蛇)完整源码附素材(二)
- C++ 机房预约系统
热门文章
- 【Fusion360】常用快捷键和技巧
- Linux 查看用户操作记录
- Cents XAMPP/LAMP phpmyadmin Access Denied
- winpython,安装与使用(anaconda)
- 给你一台小车车,怎么让它自动驾驶起来?
- linux的spawn权限不足,linux expect, spawn自动登录
- 动漫人物身体绘画教程,超棒的简化教学
- NVIDIA Jetson AGX Xavier主机刷机与SSD安装
- 专利申请-周期及状态
- 华为 android 安全,华为 EMUI/Magic UI 安全更新 2020-5