一、PTA实验作业
题目1:打印九九口诀表
1. 本题PTA提交列表
2. 设计思路
- 第一步:定义三个整型变量N,i,j
- 第二步:输入正整数N
- 第三步:判断i=j是否成立,如果成立执行第四步,否则执行第五步
- 第四步:按格式输出j,i,i*j,并换行
- 第五步:按格式输出j,i,i*j
- 第六步:重复第三步,直到j<=i
- 第七步:重复第六步,直到i<=N
3.本题调试过程碰到问题及解决办法
刚开始没有看清楚题目要求,题目要求等号右边数字占4位、左对齐,而我却写成了每个式子第一个数占4位,导致不能左对齐;发现问题后,仔细阅读题目,改成等号右边数字占4位。
这次怎么都发现不了问题出现在哪里,问了一下舍友,发现因为我代码步骤打的有点分散,步骤太多,导致每行最后一个式子等号右边数字没有占4位,虽然看起来没什么不同,但就是错了
题目2:梅森数
1. 本题PTA提交列表
2. 设计思路
- 第一步:定义整型变量n,i,j,number,count;
- 第二步:输入n
- 第三步:初始化count
- 第四步:number=pow(2,i)-1;
- 第五步:判断number%j==0,如果成立,执行第六步,否则执行第七步
- 第六步:count++
- 第七步:重复第五步,直到j<number
- 第八步:判断number!=1&&count==0,如果成立,执行第九步,否则执行第十步
- 第九步:输出number
- 第十步:重复第三步,直到i<=n
- 第十一步:判断number==1,如果成立,执行第十二步
- 第十二步:输出None
3.本题调试过程碰到问题及解决办法
提交到pta上时提示“最小n,输出为空集 答案错误”,于是对代码编译运行后输入1,发现如下图的情况
于是我就去浏览了下代码,发现我忘了写这一段代码,就改了一下,提交后发现又是和上面一样的错误提示
调试后发现当输入1时,程序还是进入了count2++这个语句,仔细分析后发现if语句后没有大括号,加了大括号就正确了;后来发现只有当n=1时,才完全没有,所以简化了一下代码
题目3:歌唱比赛评分系统
1. 本题PTA提交列表
2. 设计思路
- 第一步:定义整型变量repeat,n,score,i,j,sum,max,min;
- 第二步:输入次数repeat
- 第三步:输入n和score
- 第四步:max=score;min=score;sum=score;
- 第五步:输入成绩score
- 第六步:sum=sum+score;
- 第七步:判断max<score,如果成立,执行第八步,否则执行第九步
- 第八步:max=score;
- 第九步:判断min>score,如果成立,执行第十步,否则执行第十一步
- 第十步:min=score;
- 第十一步:重复第五步,直到i<=n-1
- 第十二步:计算(sum-max-min)/(n-2)的值,按格式输出score
- 第十三步:重复第三步,直到j<=repeat
3.本题调试过程碰到问题及解决办法
提交到pta上时显示答案错误,于是把题目上的输入样例输进去,得到如下图所示的结果,发现与题目所给的输出样例不同,因为我忘了在答案之前加“score:”
修改完之后,我又提交了一遍,发现又错了,这次显示为格式错误,这次输出结果为下图所示
并没有发现什么错误,后来我又尽力去看到底哪里格式错了,我甚至还把输入样例里提到的括号都一起输了进去,结果还是格式错误,调试也找不出问题,于是就去找舍友讨论一下这个问题,发现输入数据时会出现如下图的问题,结果会和下一组的输入数据挤在一起,所以需要在每一次输出结果后换行
二、同学代码结对互评
1.互评同学名称
周炳辉
2.我的代码、互评同学代码截图
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
我的代码使用count进行计数,利用count的值来判断是哪一种情况;周炳辉的代码利用continue和break语句来控制循环的进行,实现程序要求;两种风格各有各的优势;相对来说,我更喜欢我自己的代码风格,我比较喜欢用count来计数,个人感觉这么做比较清晰。
三、截图本周题目集的PTA最后排名
PTA排名
四、本周学习总结
1.你学会了什么?
本周我学会了嵌套循环的使用,嵌套循环的使用比较之前的单层循环难了一些,在运用时必须清楚它的逻辑顺序,分清内外层循环,否则很容易乱掉;在运用嵌套循环时还要特别注意初始化语句的位置,一旦放错位置就会导致错误,这是我们这种初学者容易犯的错误。
2.本周的内容,你还不会什么?
对于本周的内容基本上都学会了,就是嵌套循环运用的还不够熟练,有时候就会不知道该如何运用,或者写着写着就乱了;所以我还需要不断的去练习一些嵌套循环的题目来提升熟练度。