C语言I博客作业03
一.作业头
这个作业属于哪个课程 | 2020计科3班 |
---|---|
这个作业要求在哪里 | 作业03 |
这个作业的目标 | 复习上课内容,在题目中发现自己的错误,观察大佬代码,从中预习并发现他们的代码的优美 |
学号 | 20209032 |
二.本周作业
1.PTA实验作业(15分/题)
1.1 输出华氏-摄氏温度转换表
- 题目描述:输入2个正整数lower和upper(lower≤upper≤100),请输出一张取值范围为[lower,upper]、且每次增加2华氏度的华氏-摄氏温度转换表。温度转换的计算公式:C=5×(F−32)/9,
其中:C表示摄氏温度,F表示华氏温度。
1.1.1实验代码截图
1.1.2数据处理
数据表达 | 内容 |
---|---|
使用了哪些变量 | upper,lower,F,C |
这些变量的值是怎么来的 | upper与lower通过scanf定义变量的值,F由lower赋值,C由计算式计算得出 |
类型是什么 | upper、lower与F是整型 ,C是双精度浮点型 |
数据处理 | 内容 |
---|---|
数据用到的表达式 | 分段函数 |
流程结构 | if-else的分支结构与for的循环结构 |
1.1.3 PTA提交列表及说明
- Q1:第一张图片是在visual studio中检查代码没有出现错误后提交,自己已经尝试过按照代码走不同的路径,发现不正确,感到很奇怪。
A1:查阅后发现自己没有看清提议,题目明确要求在输出中值要占据6字符宽度。 - Q2:第二张图片是由于第一张错误后查阅的他人代码,从中看到一些知识点。
A2:在for语句中初始值不一定要对其赋值,在末尾++为自增1,如果要对其改变应为i=i+n(n为每一次改变的量),那样就不需要再在for语句中再次计算加法。 - Q3:在他人代码中发现即使他的答案正确,但是对我自主测试的数仍不符合如:upper=120,lower=100,他的代码任旧会输出最后的表格。
A3:为此我觉得应该严谨一些,所以用到了多重判断,从这里学到了“或,且,非”的表达方式。
1.2生成3的乘方表
- 题目描述:输入一个非负整数n,生成一张3的乘方表,输出30~3n的值。可调用幂函数计算3的乘方。
1.2.1 实验代码截图
1.2.2 数据处理
数据表达 | 内容 |
---|---|
使用了哪些变量 | i,n,m |
这些变量的值是怎么来的 | n是由scanf定义的变量,i是定义的for的初始值,m由调用的数学函数计算得出 |
类型是什么 | i,n,m都是整型 |
数据处理 | 内容 |
---|---|
数据用到的表达式 | 数学函数中的指数函数 |
流程结构 | for的循环结构 |
1.2.3 PTA提交列表及说明
- Q1:在第一次调试时发现所有的数都在一行,无法形成表格。
A1:马上就明白是为换行导致没循环一次所有计算结果都在同一行,加入\n后就达到预期结果。 - Q2:在前面他人的代码比较好看,自己的却像堆积起来的一团东西。
A2:发现他们会在运算符与各变量会加入空格对其美化等等。
1.3 求阶乘序列前N项和
- 题目描述:本题要求编写程序,计算序列 1!+2!+3!+⋯ 的前N项之和。
1.3.1 实验代码截图
1.3.2 数据处理
数据表达 | 内容 |
---|---|
使用了哪些变量 | i,n,m,sum,product |
这些变量的值是怎么来的 | n是由scanf定义的变量值;sum与product一开始是固定的输出值,在后面跟随计算式改变;m与i在for语句中被定义为初始量,并逐渐改变 |
类型是什么 | i,n,m,sum,product都是整型 |
数据处理 | 内容 |
---|---|
数据用到的表达式 | 累乘与累加 |
流程结构 | for的循环结构 |
1.3.3 PTA提交列表及说明
- Q1:程序的流程具体是怎么样的呢,一开始想了可久了!!!
A1:画了几幅流程图,最后发现用两次循环语句,每次进行第二个for语句的判断时,应该是看m与i的关系,再一次进行循环。 - Q2:在遇到这么多问题,是怎么解决的呢!!!
A2:我大概就会去CSDN上找大佬们的代码,去看看他们跟我自己写的代码差距在哪里,他们的代码完美不,我每一次可以在他们的代码中学到很多东西。
2.阅读代码(-5——5分)
- 虽然我没看懂他的程序,但是他的解释让我特别明白差距,他们不会一味的直接开始写代码,而是想好这次我要怎样去设计他,需要用到怎样的流程。在写代码时,不是说直接上手去写代码,而是说在自己脑袋中构建自己所需要的东西,或者把写下来。
- 在设计自己的程序时应该要考虑其时间复杂度与空间复杂度,在上课时,彭老师就说过在编程中,不是时间换空间就是空间换时间。我们应该要考虑当前情况下,这个程序的最优解。
- 在大佬的代码中我虽然看不懂,但是我却看到了明了美观。在每一部分中都会有空段进行排版。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
6/10.8~10.11 | 2h | 51 | 打印“ hello world” | 无 |
7/10.12~10.18 | 8h | 70 | 各个符号代表的是什么的基础知识 | 还有许多符号分辨不清 |
8/10.19~10.25 | 10h | 93 | 数学函数的调用 | 对于大佬前面的哪些头文件的调用类型看不懂 |
9/10.26~11.1 | 10h | 154 | if-else语句 | 无 |
10/11.2~11.6 | 10h | 348 | for语句 | 较为复杂的循环还搞不清循环几次,循环内容 |
3.2 累积代码行和博客字数(5分)
3.3 学习感悟(5分)
- 每一周都是先上上机课,我一般都是在上机课上试错,预习工作都放在了上机课,那样对自己的学习进度由一定的影响,对上课所要求的内容会难以及时完成,自己一定要赶快改正。
- 在以后的学习中要学会使用CSDN,在CSDN上学习大佬的方法,多在CSDN上搞好预习,遇到不懂的先问CSDN。