c语言I作业10
这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10098 |
我在这个课程的目标是 | 加深对嵌套结构的理解 |
这个作业在那个具体方面帮助我实现目标 | 通过做字符图形输出的题目加深我们对嵌套结构的理解 |
参考文献 | 《c语言程序设计》,csdn |
一.PTA实验作业
1.1 输出三角形字符阵列
本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。
输入格式:
输入在一行中给出一个正整数n(1≤n<7)。
输出格式:
输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。
数据表达:定义变量a,b,c,i,m全为整型;
数据处理:如下
开始
定义变量a,b,c,i,m
输入m
b←m-1
c←(1+m)*m/2
for i←0 to c
输出'A'+i
if i=m-1 then
转行
m←m+b
b←b-1
end if
结束
1.1.2 实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
4 | ![]() |
pta样例 |
3 | ![]() |
n<4 |
5 | ![]() |
n>4 |
1.1.4 PTA提交列表及说明
部分错误:编写多次一直出现部分正确,在编译软件中所输入的与样例有点不同,提交列表显示是由一部分出现答案错误,这肯定是循环体或者计算式出现错误,多次尝试后解决了问题。
**1.2 ** 梅森数
形如2n−1的素数称为梅森数(Mersenne Number)。例如22−1=3、23−1=7都是梅森数。1722年,双目失明的瑞士数学大师欧拉证明了231−1=2147483647是一个素数,堪称当时世界上“已知最大素数”的一个记录。
本题要求编写程序,对任一正整数n(n<20),输出所有不超过2n−1的梅森数。
输入格式:
输入在一行中给出正整数n(n<20)。
输出格式:
按从小到大的顺序输出所有不超过2n−1的梅森数,每行一个。如果完全没有,则输出“None”。
1.2.1 数据处理
数据表达:定义m,n,i,j为整型变量;
数据处理:如下
开始
定义i,j,n,m
输入n
for i←2 to n
m←2^i-1
for j←2 to m/2
if m%j=0 then
break
end if
if j>m/2
输出m
if n=0||n=1
输出None
结束
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
6 | 3 7 31 | pta样例 |
7 | 3 7 31 127 | n>6 |
15 | 3 7 31 127 8191 | n>6 |
1 | None | 无完数情况 |
1.2.4 PTA提交列表及说明
部分正确:之前这道 题目在实验课中做过的,知识稍有不同,我将原来的代码稍加改动可以达到这一道题的要求,不过一直反复出现部分正确,也就是部分答案错误。详细比较我之前写过的代码,问题并不是出现在编写的代码内容,而是代码规范的问题,由于大括号在for后和if后的使用不太正确,导致代码出现紊乱,所以运行时出现错误,得不到正确的结果。
编译错误:手误多打了一个符号,又立马点了提交,下次注意。
二.代码互评
代码比较1:
同学1的代码 | 我的代码 |
---|---|
![]() |
![]() |
代码分析:
- 我与这位同学代码的差异还是蛮大的,首先就是思路不同,定义了的变量也有所不同,她定义了字符型变量而我没有。总体上说她的代码写得比我的好,不过她的代码需要对字符型变量的掌握和运用较好,而这也正是我所需要去学习的地方。
代码比较2:
同学2的代码 | 我的代码 |
---|---|
![]() |
![]() |
代码分析:
- 我和这位同学的代码风格类似,起码思路上是相同的,不同的地方在于素数的判断的方法形式不同,判断是否是素数的多种方法确实值得我们去吸收
三.学习总结
3.1 学习进度条
日期 | 这周所花时间 | 代码行 | 学到的知识简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第一周(9.19-9.27) | 1小时左右 | 28 | c语言初步了解 | 格式的正确运用 |
第二周(9.27-10.4) | 2小时左右 | 20 | markdown格式的运用 | 怎么样让排版更加美观整齐 |
第三周(10.4-10.11) | 5小时左右 | 104 | if-else语句的运用 | 题目逻辑掌握不到位,分析问题的能力有待提高 |
第四周(10.11-10.18) | 5.5小时左右 | 92 | 循环语句的运用 | 循环体的编写以及结构的多种变化理解不透彻 |
第五周(10.18-10.25) | 8小时左右 | 90 | 调用函数的运用 | 还是很多时候循环体计算式不能写对 |
第六周(10.30-11.02) | 7小时左右 | 133 | 分支函数的运用 | 分支函数的多种形式理解不到位 |
第七周(11.4-11.8) | 5小时左右 | 105 | switch语句的运用 | switch语句的理解以及用法不到位 |
第八周(11.12-11.16) | 6小时左右 | 99 | 循环语句的进一步理解和运用 | 伪代码的正确书写 |
第九周(11.18-11.22) | 5小时左右 | 98 | 循环语句嵌套的运用 | 语句逻辑难以理清 |
第十周(11.26-11.29) | 5小时左右 | 94 | 编程打印题目的掌握 | 题目的分析以及其思路看出来有些困难 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
-
这是第十周了,同时也是忙碌的第十周,所以这周的博客完成得也算是有一些仓促的吧。
-
渐渐地学习到现在会有一些做题目的感觉,但是稍微难一些的题目,完全独立地完成它还是有不小的难度。
-
或许是渐渐地吸收到了一些东西,对编写代码也是更有兴趣去学了。
-
临近期末,不得不承认自己对基础知识的掌握还很不够格,希望自己在考试前可以认真复习,圆满地完成考试。