C语言I博客作业10
| 问题 | 答案 |
|---|---|
| 这个作业属于那个课程 | C语言程序设计II |
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/10100 |
| 我在这个课程的目标是 | 对循环的嵌套进一步的应用 |
| 这个作业在那个具体方面帮助我实现目标 | pta作业和代码互评 |
| 参考文献 | 《C语言程序设计》,CSDN博客 |
1.PTA实验作业

1.1 7-3 梅森数
形如2^n−1的素数称为梅森数(Mersenne Number)。例如22−1=3、23−1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了231−1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。本题要求编写程序,对任一正整数n(n<20),输出所有不超过2n−1的梅森数。
1.1.1数据处理
- 数据表达:用了整型的number,i, accumulation,p,s变量。
- 数据处理:
输出入2的幂number
while p<number
do p←p+1
accumulation=pow(2,p)
for i 1 to (accumulation-1)/2 by 1 do
if (accumulation-1)%i=0
then break
end
if i>(accumulation-1)/2
then 输出accumulation-1并换行
s←s+1
end
if s=0
then 输出None
1.1.2实验代码截图

1.1.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 6 | 3 7 31 | 幂小于10 |
| 17 | 3 7 31 127 8191 131071 | 幂大于10 |
| 19 | 3 7 31 127 8191 131071 524287 | 幂大于10 |
1.1.4 PTA提交列表及说明

- 1.部分错误:一个if语句的条件错误。调试中解决。
- 2.部分错误:输出的变量搞错了。调试中解决。
- 3.答案错误:在改动上面的过程中把while语句里循环的判断条件改错了。分析错误看代码时解决。
- 4.答案错误:逻辑错误,break打成了continue。调试中观察到变量的值与心里想的语句走向矛盾问题。
1.2 7-8 输出三角形字符阵列
本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。
1.2.1数据处理
- 数据表达:使用了整型变量n,j,i和字符变量c。
- 数据处理:
输入三角形的行数n
c←'A'
for i 1 to n by 1 do
for j i to n by 1 do
输出字符变量C
C的ASCII值加一
end
换行
end
1.2.2实验代码截图

1.2.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 2 | ![]() |
小于3 |
| 3 | ![]() |
等于3 |
| 4 | ![]() |
大于3 |
1.2.4 PTA提交列表及说明

- 1.编译错误:输出换行的那个语句忘打分号了。pta提示解决。
- 2.格式错误:输出字符时没有空格。在Dev里发现输出与题目的输出样例稍有不同。
- 3.格式错误:把空格加大字符前面去了。看输出格式说明解决。
2.代码互评
同学代码截图

自己代码截图

- 1.这位同学的代码的变量直接看不出含义,不容易理解。
- 2.这位同学的内层循环次数有可能过多,应将for语句的j<a的a改成根号a或二分之一a。
3.学习总结
3.1 学习进度条
| 周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
|---|---|---|---|---|
| 7/10.9-7/10.11 | 7小时 | 276 | if- else语句 | PTA第三次作业的第5题用我自己的思路编代码结果不对 |
| 8/10.16-10.18 | 16小时 | 257 | 用for语句计算简单的序列和 | 浮点变量的单精度和双精度有什么区别 |
| 9/10.23-10.26 | 17小时 | 127 | 初步的了解了while语句和定义函数的使用 | 在那种情况下数组变量要定义在主函数外 |
| 6/27~6/31 | 17小时 | 270 | 多分枝结构和表达式,数组 | 数组到底可以存多少个数,超出10怎么表达每一个数组 |
| 11/11.6-11/11.8 | 17小时 | 176 | switch语句可以分成很多种情况 | swicth语句到底可能可以内嵌switch语句,我试过没成功过 |
| 12/11.13-12/11.15 | 17小时 | 270 | 使用while语句进行循环计算 | 伪代码到底怎么打,网上的文章看不懂 |
| 13/11.20-13/11.22 | 13小时 | 267 | 循环语句的嵌套使用 | break语句只能结束循环吗?switch语句里也有循环,但不是循环语句 |
| 14/11.27-14/11.29 | 12小时 | 166 | 循环的了解进一步加深 | 调试时在return 0行设置断点有什么用 |
3.2 累积代码行和博客字数

3.3 学习内容总结和感悟
3.3.1 学习内容总结

3.3.2 学习体会
- 1.在用循环的时候要特别注意循环的次数,不然很容易超时。
- 2.在解决问题的过程中最好先将大问题分成三四个小问题(不要过多)一一解决,然后在结合在一块。
- 3.在做题的过程中若很久都做不成不要在蛮做了,可以去看看C语言的书,借鉴一下别人的代码。




浙公网安备 33010602011771号