0.展示pta总分
选择结构
顺序结构
1.本章学习总结
1.1学习内容总结
-
分支结构
if else-if语句与switch语句都具有选择判断的功能,但是在使用时又有所区别,按题目的不同要求与题意选择不同语句。
if else-if语句表达
if(表达式)
{
表达式
}
else if(表达式)
{
表达式
}
else
{
表达式
}
switch语句表达
switch(表达式){
char 常量表达式1:语句段1;break;
...
char 常量表达式n:语句段n;break;
default: 语句段n+1;break;
} -
循环结构
while语句与for语句都能让程序执行循环,但两者的表达方式又不同,while()当括号内表达式为真时,循环执行,知道表达式为假。for()括号内表达式为循环执行范围。
while语句表达
while(表达式)
for语句表达
for(语句段1;语句段2;语句段3)
{
表达式
} -
常用数学函数
平方根函数:sqrt(x),计算x的平方根。
绝对值函数:fabs(x),计算|x|。
幂函数:pow(x,n),计算x的n次方。
指数函数exp(x):计算e的x次方。 -
字符型常量
字符型常量由单引号及其括号内字符表示,如‘+’、‘a’等,每个字符型常量有其对应的值,字符型常量可用于switch语句。
宽度限定
整型数据:%md,m即输出宽度(包括符号位)
实型数据:%m.nf,指定了输出浮点型数据时保留n位小数,且宽度为m。
若数据小于m,左端补空格;若数据大于m,按实际位数输出。
1.2本章学习体会
- 上课时的知识点都能听懂,但真正做题时才感觉到自己的代码量不够,想破脑袋想不出怎么去写,一问室友又瞬间明白,的的确确是平时代码量太少,还得加强。
- 两周的代码量有1700左右。
2PTA实验作业
2.1题目名
- 三个数由小到大输出
2.1.1数据处理
- 数据表达:定义x、y、z三个整型变量用来储存输入的三个数,定义big、middle、small三个整型变量储存最大值、中间值、最小值。
- 数据处理:先拿出两个数比大小,并赋给最大值与最小变量,再拿剩下的数与最大值最小值比较,比出三个数大小顺序。
2.1.2代码截图
2.1.3本题可扩展功能
2.1.4 PTA提交列表及说明
- Q 一开始将两个if嵌套在一起,发现输出错误。
- A 比较时我的逻辑因该按顺序先比较两个数,嵌套在一起就会把输入的值赋错给其他变量。
2.2 题目名2
- 特殊a串数列求和
2.2.1 数据处理
- 数据表达:定义变量a、i变量用于储存输入数据,定义变量i用于区分循环范围,定义变量number、s用于求和。
- 数据处理:计算第n项number的值,利用for循环语句将所有项累加,求出所有和s的值。
2.2.2 代码截图
2.2.3 本题可扩展功能
将for语句中的执行语句修改,克计算不同数列求和问题,例如计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和,可将for语句中执行语句改为如下,即可求其数列之和。
2.2.4 PTA提交列表及说明
- Q第一二次时程序运行完后输出的值错误,语法正确,可以过编译。
- A未理解题意,执行表达式不符合题意,程序跑出来的结果就会和样例不同。
2.3 题目名3
考研录取情况
2.3.1 数据处理
- 数据表达:定义不同科目的不同变量以及总成绩。
- 数据处理:通过两个if else语句的嵌套,按不同条件输出不同的结果,
2.3.2 代码截图
2.3.3 本题可扩展功能
- 本题需同时控制不同条件,可根据题意变化改变if语句后的判断条件即可改变不同的输出结果
2.3.4 PTA提交列表及说明、
不同的嵌套方式判断的结果也不同刚开始没有注意到自己的表达顺序有误,没有选择合适的判断顺序与条件。
3.阅读代码
- 代码解读:根据题意可以知道程序是计算把M个同样的苹果放在N个同样的盘子里的不同放法。
n>m时,有n-m个盘子是空的,
n<m时,可分为:
1.每个盘子都有苹果,所以表示为m-n个苹果放入n个盘子。
2.至少空一个盘子时,则有n-1种放法
(这是我在ACM题库里找到的代码行数最少算是比较简单的一题了,但是只能理解到这些,到后面的循环就不是很懂了。)