Prepare for PAT

PAT官网

计划

1/11-2/20

一共 50h

PAT-timeaxis.xlsx

代码

PAT

总结

Summary of PAT

条件判断中如果有对称性的逻辑,尽量适用下面这种方式,即变量不动,逻辑判断动。

1
2
3
4
5
if(a1 + b1 == a2 && a1 + b1 != b2){
a++;
}else if(a1 + b1 != a2 && a1 + b1 == b2){
b++;
}

避免适用下面这种方式(比较混乱)

1
2
3
4
5
if(a1 + b1 == a2 && a1 + b1 != b2){
a++;
}else if(a1 + b1 == b2 && a1 + b1 != a2){
b++;
}

PAT——甲级1042:Shuffling Mashine

long long 类型在 C++(g++) 下错误 C++(clang++) 下正确。

PAT-1065.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <cstdio>

int main(){
int t;
scanf("%d", &t);
for (int i = 0; i < t; i++){
long long a, b, c;
scanf("%lld%lld%lld", &a, &b, &c);
if(a > 0 && b > 0 && a + b < 0){
printf("Case #%d: true\n", i+1);
}else if(a < 0 && b < 0 && a + b >= 0){
printf("Case #%d: false\n", i+1);
}else if(a + b > c){
printf("Case #%d: true\n", i+1);
}else {
printf("Case #%d: false\n", i+1);
}
}
return 0;
}

注意计数器自增自减和条件判断的前后顺序。

1
2
3
4
5
6
7
8
9
count--;
if(count > 0){
...
}
////
if(count > 0){
...
}
count--;

sort() 函数的使用

C++ error 2872:不明确的符号 - code_nie的博客 - CSDN博客

简单地说,出现这种情况是因为程序使用的命名空间里已经有这个变量名了

namespace std, “rank”

vs2010 报错:

1>MSVCRTD.lib(crtexe.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用
1>f:\visual studio 2010\Projects\pat\Debug\pat.exe : fatal error LNK1120: 1 个无法解析的外部命令

原因:main 拼错了,拼成了 mian

strcpy() 函数

考点

深圳大学: 白鉴聪, szubjc@szu.edu.cn
Dev C++ 5.10; Code::Blocks16.01; Java SE Development Kit9.0.1; Eclipse Oxygen.2 版本 4.7.2; Python解释器(3.6.5); PyCharm Community Edition

求余(%)和取整(/)优先级相同。

PAT备考经验&相关信息