c语言I作业09

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10030
我在这个课程的目标是 进一步加深对循环结构的理解与运用
这个作业在那个具体方面帮助我实现目标 break,continue的熟悉以及循环结构嵌套的使用
参考文献 《c语言程序设计》,csnd

一.PTA实验作业

1.1 找完数

题目内容描述: 所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数mn之间的所有完数。

输入格式:

输入在一行中给出2个正整数mn(1<mn≤10000),中间以空格分隔。

输出格式:

逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。

1.1.1数据处理

数据表达:定义变量a,b,i,j,k,m全为整型;

数据处理:如下

开始
定义变量a,b,i,j,s,l,m
输入 a,b
for i←a to b
    do s←0
        for j←1 to i
            if i%j=0 then
                s←s+j
                end if
        if s=i
            输出 i=1
            for k←2 to j
                if i%k=0
                    输出 + k
                end if
            换行
            m←m+1
            end if
    if m←0
        输出None
    结束


1.1.2 实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
2 30 6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
pta样例
2 5 None 无完数情况
2 999 6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248
三个完数情况

1.1.4 PTA提交列表及说明

编译错误:可能是由于代码较长吧,方方面面的细节没有注意,导致出现的编译错误。认真检查后得以改正。

答案错误:s值赋值错误,开始的时候赋其值为1,但一直出现答案错误,在编译软件中多次尝试后将赋值改为0后解决了问题。

格式错误:“ + %d”中开始并没有“+”,在同学的帮助下了解到需添加“+”。

**1.2 ** 跟奥巴马一起画方块

题目内容描述:美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!

输入格式:

输入在一行中给出正方形边长N(3≤N≤21)和组成正方形边的某种字符C,间隔一个空格。

输出格式:

输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。

1.2.1 数据处理

数据表达:定义m,n为整型变量,定义字符变量c;

数据处理:如下

开始
定义整型变量m,n,i,j
定义字符变量a
输入 n,a
if n%2=0 then
    m←n/2
else
    m←n/2+1
end if
for i←0 to m
    for j←0 to n
        输出a
        换行
结束

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
10 a pta样例
5 b N=5,字符为b
6 z Z=6,字符为z

1.2.4 PTA提交列表及说明

部分正确:这是此题目出现的主要错误,我在循环体中出现错误,在if-else语句中出现错误,重新理清逻辑和参照同学代码得以改正过来。

格式错误:没有输出转行,在编程软件中运行发现问题,并加入了转行的输出。

二.代码互评

代码比较1:

同学1的代码 我的代码

代码分析:

  • 一眼望去同学的代码就比我的显得更加简洁,不过细看总体上其实的差不多的,不同的地方在于变量的定义,显得风格不同。有的时候巧妙地定义变量确实是让代码变得更好地好办法。

代码比较2:

同学2的代码 我的代码

代码分析:

  • 对比起来,形式上是类似的,不同则在于if语句以及循环体的不同,本质上看所表达的意思相同,只不过表达方式不同,从中也可以看出两者的思路以及风格的不同。

三.学习总结

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 循环语句嵌套的运用 语句逻辑难以理清

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会

  • 经过这么久的学习做题时读题,会有一些思路,不想以前一样一头雾水,虽然还是难以自己完全写正确代码,但是相对来说,算是有些进步。

  • 中途的一段时间真的感觉十分吃力,对学习c语言的兴致也有所下滑,但是很高兴的是现在又重燃对c语言学习的热情,可能是因为有进步或者即将面临考试吧。

posted on 2019-11-22 21:34  酴灵  阅读(224)  评论(1编辑  收藏  举报

导航