1.vs2013不能用scanf,改为scanf_s,但是提交时不能用scanf_s,用scanf。。。

 scanf_s("%lld/%lld %lld/%lld", &a[], &a[], &b[], &b[]);

2.c++中数组作为函数参数时传递的是地址,会改变实参的值。

3.用printf输出string型变量时要加上“.c_str()”:

 printf("%s + %s = %s\n", simple(a).c_str(), simple(b).c_str(), simple(r).c_str());

4.类型别名:

 using LL = long long;

相乘时可能会超出整型范围,用long long。

代码:

 #include <iostream>
#include <string>
using namespace std;
using LL = long long;//类型别名 LL gcd(LL a, LL b)
{
if (b == )
return a;
return gcd(b, a % b);
} string simple(LL a[])
{
LL m = a[], n = a[];
if (n < )
{
m = -m;
n = -n;
}
string s;
char c;
if (m < )
{
m = -m;
c = '-';
}
else c = '+'; LL g = gcd(m, n);//分子分母最大公约数
m = m / g;
n = n / g; LL r = m % n;
LL k = m / n;
if (k) s = to_string(k);
if (r && k) s += " ";
if (r) s = s + to_string(r) + "/" + to_string(n);
if (!k && !r) s = ""; if (c == '-') s = "(-" + s + ")";
return s;
}
void add(LL a[], LL b[])
{
LL r[];
r[] = a[] * b[] + b[] * a[];
r[] = a[] * b[];
printf("%s + %s = %s\n", simple(a).c_str(), simple(b).c_str(), simple(r).c_str());
}
void sub(LL a[], LL b[])
{
LL r[];
r[] = a[] * b[] - b[] * a[];
r[] = a[] * b[];
printf("%s - %s = %s\n", simple(a).c_str(), simple(b).c_str(), simple(r).c_str());
}
void motify(LL a[], LL b[])
{
LL r[];
r[] = a[] * b[];
r[] = a[] * b[];
printf("%s * %s = %s\n", simple(a).c_str(), simple(b).c_str(), simple(r).c_str());
}
void divide(LL a[], LL b[])
{
LL r[];
r[] = a[] * b[];
r[] = a[] * b[];
if (r[])
printf("%s / %s = %s\n", simple(a).c_str(), simple(b).c_str(), simple(r).c_str());
else
printf("%s / %s = Inf\n", simple(a).c_str(), simple(b).c_str());
}
int main()
{
LL a[], b[];
scanf_s("%lld/%lld %lld/%lld", &a[], &a[], &b[], &b[]); add(a, b);
sub(a, b);
motify(a, b);
divide(a, b); return ;
}

pat乙级1034的更多相关文章

  1. PAT乙级1034. 有理数四则运算(20)

    本题要求编写程序,计算2个有理数的和.差.积.商. 输入格式: 输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分 ...

  2. PAT乙级 1034

    思路:是个水题,但是有坑.不能被题目忽悠了,题目保证正确的输出中没有超过整型范围的整数. 它只是保证结果不超出int,但是我们在运算过程中的乘法可能会超出int,直接把所有int改成long long ...

  3. C#版 - PAT乙级(Basic Level)真题 之 1021.个位数统计 - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - P ...

  4. PAT乙级真题及训练题 1025. 反转链表 (25)

    PAT乙级真题及训练题 1025. 反转链表 (25) 感觉几个世纪没打代码了,真是坏习惯,调了两小时把反转链表调出来了,心情舒畅. 这道题的步骤 数据输入,数组纪录下一结点及储存值 创建链表并储存上 ...

  5. PAT甲级1034. Head of a Gang

    PAT甲级1034. Head of a Gang 题意: 警方找到一个帮派的头的一种方式是检查人民的电话.如果A和B之间有电话,我们说A和B是相关的.关系的权重被定义为两人之间所有电话的总时间长度. ...

  6. PAT 乙级 1024

    题目 题目地址:PAT 乙级 1024 题解 模拟题,重点需要考虑到各种不同情况:简单来说一下: 因为输入格式固定,所以把不同的部分分别存储和处理可以在很大程度上简化运算:其中需要考虑最多的就是小数部 ...

  7. PAT 乙级 1017

    题目 题目地址:PAT 乙级 1017 题解 粗看是一道大数除法题,实际上只不过是通过字符数组模拟除法过程,理解之后还是比较简单的: 具体分析一下本题: 因为题设中的除数(n)是一位整数,因此大幅简化 ...

  8. PAT 乙级 1015

    题目 题目地址:PAT 乙级 1015 题解 常规题,难点在于理清楚排序规则,通过比较简洁的方式进行编码: 在这里我选择使用vector进行存储,并使用sort方法排序,因为本题不是简单按照大小排序, ...

  9. PAT 乙级 1003

    题目 题目地址:PAT 乙级 1003 题解 规律观察题,本题的关键在于把题读懂,同时还有几个比较容易疏忽的地方需要注意:总之这道题要考虑的东西更多,细节上也要特别注意: 规律:“如果 aPbTc 是 ...

随机推荐

  1. java线程基础知识----SecurityManager类详解

    在查看java Thread源码的时候发现一个类----securityManager,虽然很早就知道存在这样一个类但是都没有深究,今天查看了它的api和源码,发现这个类功能强大,可以做很多权限控制策 ...

  2. Delphi Runtime Library在哪里?

    Delphi Runtime Library是Delphi的运行时库,里面包含了大部分Delphi库的代码,这些库代码在哪里呢?其实正常安装完Dephi之后,在它的安装目录下面!下面我以我的Delph ...

  3. 配置OpenCV报应用程序无法正常启动0xc000007b

    我的配置软件是OpenCV3.4.1和visual studio2017.参考这篇博客(https://blog.csdn.net/qq_41175905/article/details/805604 ...

  4. [转]黑幕背后的__block修饰符

    http://www.cocoachina.com/ios/20150106/10850.html 我们知道在Block使用中,Block内部能够读取外部局部变量的值.但我们需要改变这个变量的值时,我 ...

  5. 微信小程序-修改单选框和复选框大小的方法

    方法有两种: 一:采用css的zoom属性 zoom缩放会将元素保持在左上角,并且会有毛边,可能会稍稍改变元素原来的形状. 二:采用css3的transform:scale属性 zoom缩放会将元素保 ...

  6. Java中的生产者和消费者实例(多线程 等待唤醒机制)

    1.什么是等待唤醒 我们实现的效果 创建生产者和消费者  对服装进行生产  和售卖 实现生产一个就消费一个 来观察线程的各种状态 下面是用到的方法: wait()方法:让一个线程进行等待 另外一个线程 ...

  7. 怎么在Vue中使用Base64格式的背景

    问题发生于一次mock数据,生成了base64格式的东西,因为编码包在一个变量中,不知道怎么直接在 :style 中引入. 解答1:格式background-image: url(此处是我们mock生 ...

  8. AngularJS模块——module

    angular.module('myApp',[]) 1.定义模块 2.第一个参数:定义的模块名: 3.第二个参数:依赖列表,也就是可以被注入到模块中的对象列表:依赖的这些模块需要在本模块加载之前由注 ...

  9. ACM-ICPC 2018 南京赛区网络预赛 J sum (找一个数拆成两个无平方因子的组合数)

    题目大意:就是找一个数拆成两个无平方因子的组合数,然后求个前缀和  ; 分析:运用筛法的思想 ,  因为有序对是由两个合法的数字组成的,所以只要保证第一个数合法,第二个数也合法就行,找出合法的第二个数 ...

  10. sql新增字段注意事项

    新增字段的类型.长度(精度)是否合适 解决方法: 跟应用明确加字段和改字段的风险,确认新增字段类型正确.长度(精度)合适. 以及跟应用明确老数据是否要订正?如何订正?新增列是否非空?是否有默认值等等. ...