0.展示PTA总分
1.![](https://img2018.cnblogs.com/blog/1780599/201910/1780599-20191020224529197-390804995.png)
2.![](https://img2018.cnblogs.com/blog/1780599/201910/1780599-20191020224542907-1579714443.png)
1.本章学习总结
1.1 1.1 学习内容总结
- 循环结构:
- for语句:for(输入控制量;判断式;控制量改变)
- while语句:while(控制条件),只有不符合控制条件,才可以进入循环;同时也可以使用while(1),循环中使用return结束;
- do-while语句:先进入循环,然后再判断条件,适用于特定题目;
- break与continue语句:break直接破开循环,不再进行下列语句;continue破开本次循环,进入下次循环;
1.2 本章学习体会
- 进入c语言已经一个多月了,目前的c语言从内容上并不难,更多的是基础内容,对我来说最难得是解题是面对不同题目需要应用的小技巧。正因为如此,面对很多题目,一没头绪,就不愿写下去了,到现在拖了等很多题目没写。所以希望从现在改变,把拉下的补起来。
- 这两周代码量大概是500行。
2.PTA实验作业
2.1 7-2 梅森数
2.1.1 伪代码
数据处理:首先定义n作为输入数,再定义i作为循环变量,以及m作为判断是否为素数的中间量,最后number计算输出数;
代码:for()//让i从1到n累加,找出其中的素数
max//根据定义的所求最大值
for()//计算是否为梅森素数
判断条件
if number==0计算输出个数
printf None;
2.1.2 代码截图
2.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
5 | 3,7,31 | 正常数据 |
12 | 3,7,31,127 | 正常数据 |
30 | 3,7,31,127···-214846590···· | 超过int的范围 |
2.1.4 PTA提交列表及说明
提交列表说明:
Q:没有理解题意,原以为输入pow(2,n)以内的素数
A:重新审阅了一遍题意,修改了代码;
2.2 7-7 换硬币
2.2.1 伪代码
数据处理:定义f5,f2,f1存入5分,2分,1分数,再用count记录种数,用input保存输入数;
代码:for f5=200;f5>0;f5--//保证f5由大到小输出
if f5*5>input
for f2=500;f2>0;f2--
if f2*2+f5*5>input//确保1分有分配的个数
f1=input-(f2*2+f5*5)
printf .......
sum++//输出种数
2.2.2代码截图
2.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
6 | 3,4,6,6 | 正常数据 |
12 | 2,6,9,4 | 正常数据 |
20000 | 0 | 超出取值范围 |
2.2.4 PTA提交列表及说明
提交列表说明:
Q1:答案错误,一直输出1
A1:打代码时对相似内容用复制修改的方法,造成{}的混乱,加上两个{就好了
Q2:输出时,数据由小到大输出
A2:未充分理解题意,将f5,f2改为由理论最大值输入,再递减。
2.3 7-3 打印九九口诀表
2.3.1 伪代码
数据处理:定义输入数n,以及行数line,列数row
代码:for line=1;line<=n......//确定行数
for row=1;........//内嵌循环,确定列数
printf.......//输出乘法表内容
printf \n//换行
2.3.2 代码截图
2.3.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
4 | 正常输出 | 正常数据 |
7 | 正常输出 | 正常数据 |
10000 | 运行超时 | 数据过大 |
2.3.4 PTA提交列表及说明
提交列表说明:
Q:一直输出1*1=1
A:内循环中没有嵌入i=0,导致不能进入循环
3.代码互评
同学代码截图
1.
2.