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. const指针与指向const的指针

    当使用带有const的指针时其实有两种意思.一种指的是你不能修改指针本身的内容,另一种指的是你不能修改指针指向的内容.听起来有点混淆一会放个例子上来就明白了.       先说指向const的指针,它 ...

  2. 边界提取_MATLAB

    下面是利用腐蚀算法进行边界提取,即原图减去腐蚀后的图得到边界 f=imread('D:/picture/ZiXia.jpg'); figure; subplot(,,); imshow(f); tit ...

  3. 强联通分量之kosaraju算法

    首先定义:强联通分量是有向图G=(V, E)的最大结点集合,满足该集合中的任意一对结点v和u,路径vu和uv同时存在. kosaraju算法用来寻找强联通分量.对于图G,它首先随便找个结点dfs,求出 ...

  4. 清北刷题冲刺 11-02 a.m

    卖书 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...

  5. eclipse导出带有图片、音效、其他二进制文件的jar文件的经历

    先说下简单流程吧: 1.选中“项目”,右键->export->java的“jar file”->勾选“export generated clas files and resource ...

  6. this android sdk requires android developer toolkit version

    this android sdk requires android developer toolkit version 10.0.0 or above. current version is 8.0. ...

  7. 通过jdbc连接MySql数据库的增删改查操作

    一.获取数据库连接 要对MySql数据库内的数据进行增删改查等操作,首先要获取数据库连接 JDBC:Java中连接数据库方式 具体操作如下: 获取数据库连接的步骤: 1.先定义好四个参数 String ...

  8. 通过用axios发送请求,全局拦截请求,获取到错误弄明白promise对象

    axios.interceptors.response.use(function (response) { // 对响应数据做点什么 return response; }, function (err ...

  9. LeetCode 101 Symmetric Tree 判断一颗二叉树是否是镜像二叉树

    Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For ex ...

  10. D. Little Artem and Dance

    题目链接:http://codeforces.com/problemset/problem/669/D D. Little Artem and Dance time limit per test 2 ...