这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-4 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11455 |
这个作业的目标 | 学会使用for语句实现指定次数的循环问题,提高自己写代码和分析代码的能力 |
学号 | 20209058 |
1.PTA实验作业
从PTA题目集中选出3个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题2分,内容要求如下:
1.1 求简单交错序列前N项和
本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。
1.1.1 实验代码截图
1.1.2 数据处理
数据表达:用flag表示第i项符号,初始为正,denominator表示第i项分母,初始为1,item存放每一项的值,sum存放累加值,其中flag,i,denominator,N为整型,item和sum为双精度浮点型。
数据处理:利用赋值语句和简单的四则运算计算sum,再用for循环累加sum的值。
1.1.3 PTA提交列表及说明
- Q1:刚开始运行时出现了格式错误问题
- A1:仔细看题目要求原来是等号两边没有空格,不得不说,pta挺严格的
1.2 求分数序列前N项和
本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。
1.2.1 实验代码截图
1.2.2 数据处理
数据表达:z表示分子,m表示分母,i代表每一项,item存放每一项的值,sum是整个式子的结果,其中整型数据有z,m,i,N,浮点数据有sum,item.
数据处理:用for语句进行累加,利用m=m-z实现将前一项分子的值赋予m
1.2.3 PTA提交列表及说明
- Q1:一开始没看清题目,运行结果错误
- A1:将题目和代码再看了一遍,原来分母赋值错误,直接将z的值赋给分母,而那个时候z的值已经变了
1.3 数字金字塔
本题要求实现函数输出n行数字金字塔。
1.3.1 实验代码截图
1.3.2 数据处理
数据表达:将j表示为每行左边需要输出的空格个数,i为每一行数,其中i,j都为整数
数据处理:在第一个for循环里面需要再嵌套两个for语句,另外再使用一个简单的print语句
1.3.3 PTA提交列表及说明
- Q1:在编译结果中,一直出现返回值被忽略的问题
- A1:在定义pyramid()函数时,应明白此函数的功能是输出金字塔,不做任何运算,故没有返回值
- Q2:在运行结果中,没有正确输出金字塔结构
- A2:最后一个printf语句中,%d后面忘记加空格
2.阅读代码
找一份优秀代码,理解代码功能,并讲出你所选代码有点及可以学习的地方。
如下:查询自动售货机中商品的价格
- 利用了for循环显示菜单,简单易懂
- break语句可使程序在条件满足某一情况时跳出循环
- switch语句实现多分支结构,根据用户输入的编号,可将相应的价格赋给price,让程序看起来简洁又严谨
- 以后可用这种简单的语句实现一些复杂的功能,把代码尽量写得简单明了
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较疑惑的问题 |
---|---|---|---|---|
第八周 10.19-10.25 | 10h | 30 | 简单的输入输出函数 | 无 |
第九周 10.26-11.1 | 20h | 100 | 定义基本数据类型,正确使用格式控制字符串 | 无 |
第十周 11.2-11.8 | 25h | 200 | for循环和调用简单的数学函数 | 不是很明白哪些函数可以直接调用不需要定义 |
3.2 累积代码行和博客字数
3.3 学习感悟
- 本周虽然只学习了一个for循环语句,但是很多问题都可以用到它
- 虽然有些问题看起来复杂,但是只要找到关键的函数去实现它的功能,正确定义数据,一切就都迎刃而解了
- 有关c语言的很多概念和语句都没有学过,一些题目明明很简单,却被我复杂化,这就需要我多花点时间去学习了