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,一经查实,立即删除!

相关文章

马后炮之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;包含一个字符串…

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

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

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、…

前端学习(975):bootstrap轮播图

1引入js和css 2引入html 2运行结果

linux3.0.4编译LDD中的scull全过程

按照惯例&#xff0c;我是应该先写一些本章的收获的&#xff0c;不过太晚了。 在看完第三章之后开始编译&#xff0c;错误一堆&#xff0c;几乎崩溃&#xff0c;幸亏经过不断的百度&#xff0c;总算解决了问题&#xff0c;我发现 我遇到问题比较多&#xff0c;算是集中七个龙珠…

前端学习(976):阿里百秀轮播图制作

引入js和css 复制html结构 结构调整

SAP RFC user 最小权限

今天作了几个rfc供外围系统调用&#xff0c;他们使用.net。 在.net调用时&#xff0c;提示“Lookup of function ET_PRDATA metadata failed for destination ZNMMPT_EXPORT_PR”。 这个错误&#xff0c;是由于GetFunctionMetadata()函数引起的&#xff0c;对此&#xff0c;NC0…

增强中获取屏幕值的一句很实用代码…

增强中获取屏幕值的一句很实用代码&#xff0c;直接获取屏幕字段值&#xff0c; 一般是在增强中用比如MIGO收货时&#xff0c;希望获取收货对应的A01这个值增强&#xff1a;BADI&#xff1a; MB_DOCUMENT_BADI MB_DOCUMENT_BADI 是在过账后了&#xff0c;不能报E类型消息&…

centOS7安装matlab2014a

1&#xff0c;网上下载matlab 2014a for linux; 2&#xff0c;挂载matlab_unix_2014a.iso到/mnt/matlab&#xff1b; mkdir /mnt/matlab2014a/ mount matlab_unix_2014a.iso /mnt/matlab2014a/ -o loop 3&#xff0c; cd /mnt/matlab2014a ./install4&#xff0c;选择第二个…

xdoj机器人ac

xdoj机器人100分 #include<stdio.h> int main() { char a[22][22]; int b[22][22]{0}; int h,l,f; scanf("%d%d%d",&h,&l,&f); getchar(); int i,j,c0; int flag0; for(i1;i<h;i) { for(j1;j<l;j) { a[i][j]getchar(); }getchar();} for(i1;…