1. 本章学习总结

1.1 思维导图

1.2 本章学习体会及代码量学习体会

1.2.1 学习体会

  • 通过两周的学习,我掌握了三种循环语句:for语句,while语句以及do while语句,三种语句各有特色,能适应不同的题目。
  • 在循环结构的学习构成中,pta上题目的难度也在慢慢加大,特别是循环的镶嵌结构,每一个条件都要认真安放,如果没认真或者思路不清晰,很容易造成错误且很难调试出来。
  • 在做题过程中,感觉自己慢慢在进步,在刚开始一遇到问题就向舍友求助到现在可以自己慢慢找出错误。

1.2.2 代码累计

2. PTA总分

2.1 截图PTA中循环结构2次题目集的排名得分


2.2 我的总分:

循环(单层):175
循环(嵌套):115
总分:290

3. PTA实验作业

3.1 PTA题目1

3.1.1 算法分析

定义变量num单词的字母数,flag第几个单词;
while(1) 做一次外循环
while(1) 做一次内循环
输入字符变量op
当输入的字符变量为' '或'.'时退出内循环,并使num++
if(num>0)
{
flag++
if(flag==1)输出num
else 输出空格+num
}
当输入为'.'退出外循环

3.1.2 代码截图

3.1.3 测试数据



3.1.4 PTA提交列表及说明


1.开始的几次提交,没有考虑到输入多个空格如何处理,只是单个空格的输入。
2.后来改进了代码,可以实现了多个空格的输入,但是输出的最后一个单词长度后面出现了空格。就使用了一个变量来标记这是第几个单词。

3.2 PTA题目2

3.2.1 算法分析

定义变量h为菱形的高度,mid为菱形的中间层的行数,ch为输入的字符
for i=1 to h do
for j=1 to abs(mid-i) do 输出空格
定义变量num用来实现在第几个空格后输入字母
if(i>mid)num=2mid-i
else num=i
for k=1 to 2
mid-1 do
if(k1||k2*num-1)输出字母
else 输出空格
end for

3.2.2 代码截图

3.2.3 测试数据


3.2.4 PTA提交列表及说明


由于这道题老师在课堂讲过,并加上自己的理解,没用几次的就把这道题打出来。

3.3 PTA题目3

3.3.1 算法分析

定义变量i为输入数字的位数,定义变量N2储存N用来求位数,定义变量num2该数的数位对应最小数,例如699对应的为100
if(N<0) 输出"fu "并将N赋值成它的相反数
用do while语句求位数
for i=i to 0
开始一位一位取数
if(i>1)输出空格
end for

3.3.2 代码截图


3.3.3 测试数据



3.3.4 PTA提交列表及说明


1.在取位数的时候,直接将N拿来取,导致后N为0;输出的都是ling.
2.在输出空格时,没有处理好最后一个数字后面的空格,导致出现格式错误,后来使用了一次if语句,但是判断的条件的条件出错,导致还是格式错误。

4. 代码互评

4.1 代码截图

我的

同学的

调皮一下

赛尔号型代码

4.2 两者的不同

该同学flag和count变量来判定情况 需要注意的点很多 不过思路清晰,脑回路神奇,而我用了两个while(1)来进行判定且用上单词的数目判断是否使字母来,容易被外循环与内循环的重新清零绕晕,不过简洁。