1034. 有理数四则运算(20)



本题要求编写程序,计算2个有理数的和、差、积、商。

输入格式:

输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为0。

输出格式:

分别在4行中按照“有理数1 运算符 有理数2 = 结果”的格式顺序输出2个有理数的和、差、积、商。注意输出的每个有理数必须是该有理数的最简形式“k a/b”,其中k是整数部分,a/b是最简分数部分;若为负数,则须加括号;若除法分母为0,则输出“Inf”。题目保证正确的输出中没有超过整型范围的整数。
输入样例1:

2/3 -4/2

输出样例1:

2/3 + (-2) = (-1 1/3)
2/3 - (-2) = 2 2/3
2/3 * (-2) = (-1 1/3)
2/3 / (-2) = (-1/3)

输入样例2:

5/3 0/6

输出样例2:

1 2/3 + 0 = 1 2/3
1 2/3 - 0 = 1 2/3
1 2/3 * 0 = 0
1 2/3 / 0 = Inf

错误代码:

/*************************************************************************> File Name: 1034.c> Author: YueBo > Function: 有理数的四则运算> Created Time: 2016年11月18日 星期五 12时55分10秒************************************************************************/#include <stdio.h>
#include <stdlib.h>
#include <math.h>
struct rNum1 {long long a, b;
};void print(struct rNum1* pr)
{long long m, m1, n, q, i;n = abs(pr->b);if (n == 0) { //如果分母为0,啥都不用说了printf("Inf");return;}m = abs(pr->a) % abs(pr->b);q = pr->a / pr->b;if (m != 0) { //化简真分数for (i = 2; i <= m; i++) {if (m%i==0 && n%i==0) {m = m / i;n = n / i;i = 1; //刚开始i=2老是出错}}}if (pr->a >= 0) {if (m == 0) {  //如果分子为0printf("%lld", q);} else if (q != 0) {printf("%lld %lld/%lld", q, m, n);} else {printf("%lld/%lld", m, n);}} else {if (m == 0) {printf("(%lld)", q);}else if (q != 0) {printf("(%lld %lld/%lld)", q, m, n);} else {printf("(-%lld/%lld)", m, n);}}
}void plus(struct rNum1* pr1, struct rNum1* pr2, struct rNum1* pr3)
{pr3->b = pr1->b * pr2->b;pr3->a = pr1->a * pr2->b + pr2->a * pr1->b;
}void minus(struct rNum1* pr1, struct rNum1* pr2, struct rNum1* pr3)
{pr3->b = pr1->b * pr2->b;pr3->a = pr1->a * pr2->b - pr2->a * pr1->b;
}void times(struct rNum1* pr1, struct rNum1* pr2, struct rNum1* pr3)
{pr3->b = pr1->b * pr2->b;pr3->a = pr1->a * pr2->a;
}void division(struct rNum1* pr1, struct rNum1* pr2, struct rNum1* pr3)
{if (pr2->a > 0) {pr3->b = pr1->b * pr2->a;pr3->a = pr1->a * pr2->b;} else {pr3->b = (-1)*pr1->b * pr2->a;pr3->a = (-1)*pr1->a * pr2->b;}
}int main()
{struct rNum1 r1, r2, r3;scanf("%lld/%lld", &r1.a, &r1.b);scanf("%lld/%lld", &r2.a, &r2.b);//加法plus(&r1, &r2, &r3);print(&r1);printf(" + ");print(&r2);printf(" = ");print(&r3);printf("\n");//减法minus(&r1, &r2, &r3);print(&r1);printf(" - ");print(&r2);printf(" = ");print(&r3);printf("\n");//乘法times(&r1, &r2, &r3);print(&r1);printf(" * ");print(&r2);printf(" = ");print(&r3);printf("\n");//除法division(&r1, &r2, &r3);print(&r1);printf(" / ");print(&r2);printf(" = ");print(&r3);return 0;
}
提示错误:


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421283.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ADO.NET,浅显

ADO.NET 之非查询操作 ADO.net是c sharp中一种将数据库与软件连接的技术. 在用户来操作窗口,来对数据库进行更改. 非查询操作死代码 ; Using Data.SqlClient;//导入数据库客户端 string sql string.Format("增删改的sql语句,要操作的变量用占位符表示"); //如果用w…

ajax的学多久,ajax第二天学习

post方式发送请求要首先设置请求头(参数设置为ajax.setRequestHeader("content-type","application/x-www-form-urlencoded")-->send中放入要发送的参数(keyvalue&keyvalue)-->发送数据(ajax.send(context))当xml作为载体的时候servlet中声明发送…

马后炮之12306抢票工具(四)--抢票Demo,2014年1月9日终结版

时隔一年多&#xff0c;终于朋友的忽悠下吧抢票Demo的最后一步完善了&#xff0c;与2014年1月9日成功生成车票。 Demo仅经过自己测试&#xff0c;并未在高峰期进行测试&#xff0c;代码质量很差&#xff0c;因为赶工&#xff0c;套用去年模板并未使用设计模式。 代码存在如下BU…

华为虚拟一键部署服务器,一键部署云服务器

一键部署云服务器 内容精选换一换SAP NetWeaver分布式部署如图1所示。该部署方式是由多个SAP实例组成&#xff0c;一个SAP实例是一组同时开始和结束的进程。在分布式系统中&#xff0c;所有实例都运行在独立的云服务器上&#xff0c;主要包括以下实例&#xff1a;ABAP Central …

ADO.NET多值查询

1,新控件,可以显示很多数据,视觉清晰.相当于表. listView,列表视图 添加与数据库相关的列名. SqlDataReader sdr cmd.ExecuteReader(); listView.Items.Clear();//避免数据重复 while(sdr.Read())//读所有行 {string a sdr["第一个列名"].ToString();ListviewIte…

1040. 有几个PAT(25

字符串APPAPT中包含了两个单词“PAT”&#xff0c;其中第一个PAT是第2位(P),第4位(A),第6位(T)&#xff1b;第二个PAT是第3位(P),第4位(A),第6位(T)。现给定字符串&#xff0c;问一共可以形成多少个PAT&#xff1f;输入格式&#xff1a;输入只有一行&#xff0c;包含一个字符串…

我的世界服务器显示不出地图,为什么我的世界服务器地图加载不了

期中一段&#xff1a;java:751) ~[ahb.class:?]at net.minecraft.world.World.func_147439_a(World.java:677) ~[ahb.class:?]at com.tmtravlr.jaff.entities.EntityFish.isInTank(EntityFish.java:89) ~[EntityFish.class:?]at com.tmtravlr.jaff.entities.EntityFish.func…

dataGridview与下拉框高级绑定

//在dataGridView里批量显示所有数据string sql "select * from mingxing";SqlConnection con new SqlConnection(address);//今天所学,生成适配器工具sda,批量读取(读完)SqlDataAdapter sda new SqlDataAdapter(sql, con);//创建对象dt,可以理解为是客户端的一个…

1041. 考试座位号(15)

每个PAT考生在参加考试时都会被分配两个座位号&#xff0c;一个是试机座位&#xff0c;一个是考试座位。正常情况下&#xff0c;考生在入场时先得到试机座位号码&#xff0c;入座进入试机状态后&#xff0c;系统会显示该考生的考试座位号码&#xff0c;考试时考生需要换到考试座…

前端学习(971):swiper插件使用

引入 2复制div部分 不要修改里面的文件 3复制css样式 4复制js 注意winows.addEventListener 加载后使用 5运行结果

登录的基本逻辑

登录的基本逻辑 1,验证账号密码的正确性 与数据库相匹配的代码 string sql "select count[*] from 表名 where pwd ‘’ and ac ‘’ "; //单值结果(0/1)判断是否正确,有一条结果返回。 using System.Data.SqlClient; public static string address “Data So…

ncm转MP3的工具

网易下载歌曲,发现带有.ncm的歌曲不能听,所以我查资料,怎么解决. 查到3种方式. 1,网页搜索F12 network,找到mp3的文件,右键播放. 2,将歌曲缓存,在网易设置,c盘找到缓存文件,有uc文件和连同的个2文件,uc改为mp3,再用网易打开,收藏歌单,下载. . . . 但前两种方式然并ruan. 3, htt…

1051. 复数乘法 (15)

复数可以写成(A Bi)的常规形式&#xff0c;其中A是实部&#xff0c;B是虚部&#xff0c;i是虚数单位&#xff0c;满足i2 -1&#xff1b;也可以写成极坐标下的指数形式(R*e(Pi))&#xff0c;其中R是复数模&#xff0c;P是辐角&#xff0c;i是虚数单位&#xff0c;其等价于三角…

ios企业应用发布流程

转载自:http://blog.csdn.net/justinjing0612/article/details/8758692留作备忘 企业发布app的 过程比app store 发布的简单多了&#xff0c;没那么多的要求&#xff0c;哈 但是整个工程的要求还是一样&#xff0c;比如各种像素的icon啊 命名规范啊等等。 下面是具体的流程 1、…

Mdi和修改的基本逻辑

一个主窗体要有基本的菜单栏,工具栏,状态条,系统栏,右键菜单,鼠标提示… 1,主界面:MDI,IsMdiContianer true,所有窗口的入口,媒介.一个项目只可有一个父容器 Form1 f new Form(); f.MdiParent this;//在父容器显示 ShowDialog();//模态窗口,写在模态窗口之后 的代码 必须等待…