1.本章学习总结
1.1 思维导图
1.2 本章学习体会及代码量学习体会
1.2.1 学习体会
- 本章所学习的循环结构相比于分支结构难度更加大了,在PTA刷题中遇到的问题变得更多了,比如多重循环中括号应该括到哪里,对于我来说需要费力的思考,有时还不一定对,还需要多次的调试,但也因此对于如何进行调试有了更深入的理解,看书也很重要,有一些PTA题目在没有头绪的情况下,看看书,有时就会找到一点思路。
- 这几周学习的代码量并不够,PTA写得磕磕绊绊的有时候还会经常忘记取地址符这种低级问题,下一周一定要每天增加40分钟写代码的时间。
1.2.2 代码累计
2.PTA总分(2分)
2.1截图PTA中循环结构2次题目集的排名得分
2.2 我的总分:
115+175=290
3.PTA实验作业(6分)
从PTA题目集中选3题你最满意的题目,题目选难度越大,分值越高。单层循环和循环嵌套题目都要有。每题2分,做如下内容:
3.1 PTA题目1
3.1.1 算法分析
设置变量time时间,distance1是兔子的路程distance2是乌龟的
兔子的休息时间restTime,跑步时间runTime
输入时间
for i to time do
if runTime == 0 then
runTime = 10;
if distance1>distance2 then
restTime = 30;
end if
end if
distance2 = 3+distance2;乌龟从开始到最后都在跑
if restTime == 0 then
distance1 = 9+distance1;兔子休息完毕 ,开始跑
runTime--;
end if
if restTime>0 then
restTime--; 兔子还在休息
end if
end for
if distance1<distance2 then (开始判断距离 )
printf("@_@ %d",distance2);
end if
同上
3.1.2 代码截图
3.1.3 测试数据
3.1.4 PTA提交列表及说明
q:对于还没跑完十分钟,时间就结束问题
a:可以每一分钟进行计时,每少一分钟减一
3.2 PTA题目2
3.2.1 算法分析
设置变量n为行数,i,j用来循环,num用来代替n
ch用来输入字母
输入字母,行数n
for i to n do
for(j to fabs(n/2+1-i) do 用fabs函数进行上半部分与下半部分的统一
printf(" ");对于空格的控制
end for
num=i;
if i>n/2+1 then
num=n+1-i;形成对称
end if
for j to 2*num-1 do
if j==1||j==2*num-1 then 挖空
输出字母
end if
else
输出空格
end else
printf("\n");每循环一次换行
end for
3.2.2 代码截图
3.2.3 测试数据
3.2.4 PTA提交列表及说明
q:对于如何实现既有空格又有字母
a:可以刚开始全是字母,再用if语句进行判断
3.3 PTA题目3
3.3.1 算法分析
设置变量i,j,k用来循环,score输入的评分
repeat总循环次数,n评价个数
输入总循环次数
for i to repeat do
输入评价个数
star1=0;star2=0;star3=0;star4=0;star5=0;每次循环结束重新计数
for j to n do
输入的评分
switch(score)进行计数
case 1:star1++;break;
其余同上
end switch
end if
输出1:
for k to star1 do
输出*
换行
从1到5皆如上
end for
3.3.2 代码截图
3.3.3 测试数据
3.3.4 PTA提交列表及说明
q:关于按照题目提供数据并未发现问题但出现格式错误
a:多用几组数据进行测试,比如发现两次查询时“5:”与第二次查询同一行,没有换行
4.代码互评
从同学中找一篇优秀代码,和自己写的代码比较下,说明下自己和同学代码区别,各自优势是什么?
4.1 代码截图
-
同学代码截图
-
自己的代码截图
4.2 二者的不同
1.return 0 的巧妙运用
同学巧妙运用return 0 使程序输出Error后结束,而自己运用break,还需进行下一步的判断
2.字符判断的方式不同
同学的“=”符号放在while语句内判断,而自己的所有符号皆放在switch语句内判断,比较统一
3.输入的位置不同
同学的一次循环可以读入一个数字一个运算符,而自己在循环前输入数字,循环时再读入运算符,使用switch语句时再读入数字,可能用自己的方法写的输入
语句会多一点