C语言I博客作业07
这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11530 |
我在这个课程的目标是 | 熟悉使用while和do-while结构解决问题 |
参考文献 | 《C语言程序设计》(第三版) |
学号 | 20208947 |
1.PTA实验作业(20分/题)
1.1 求整数的位数及各位数字之和 (15分)
对于给定的正整数N,求它的位数及其各位数字之和。
1.1.1数据处理
数据表达:变量N,由输入得来,为整型变量;变量count,由定义得来,为整型变量;变量sum,由定义得来,为整型变量。
数据处理:表达式:关系表达式,算术表达式;流程结构:定义变量,初始化,while语句,输出结果。
伪代码:
初始化count=0,sum=0
输入N
while循环
输出count、sum
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
321 | 3 6 | 3位数数字 |
1234 | 4 10 | 4位数数字 |
12345 | 5 15 | 5位数数字 |
1.1.4 PTA提交列表及说明
提交列表说明:
1.部分正确:题目逻辑弄错了,循环错误,导致答案错误。
1.2 循环-古角猜想 (20分)
日本数学家古角静夫研究自然数时,发现一个有趣现象:“如果是个偶数就除2,如果是奇数就乘以3加1”,经过有限个这样的处理步骤,最后一定能得到1. 任意输入一个自然数,给出得到结果1的运算过程。
1.2.1 数据处理
数据表达:变量n,由输入得来,为整型变量。
数据处理:表达式:关系表达式、算术表达式;流程结果:定义变量,输入,while语句,if-else语句,输出结果。
伪代码:
定义变量n
输入n
while定为死循环
if n%2==0,输出 %d/2=%d\n",n,n/2
把n/2赋值给n
else 输出 %d*3+1=%d\n",n,n*3+1
把n*3+1赋值给n
if n=1,则break,跳出while循环
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
5 | 5*3+1=16 16/2=8 8/2=4 4/2=2 2/2=1 | 奇数 |
4 | 4/2=2 2/2=1 | 偶数 |
1.2.4 PTA提交列表及说明
提交列表说明:
1.编译错误:开头打了两个“#”,if语句中逻辑错误。
2.运行超时:程序未能在规定时间内运行结束。
2.代码互评(5分)
同学代码截图1
同学代码截图2
自己代码截图
不同:
- 第2位同学调用了math函数,使用了pow函数,与我的代码相比,简化了计算过程。
- 第1位同学定义了6个变量,第2位同学定义了3个变量,我定义了5个变量,相比第2位同学的代码简单,简洁。
- 我与第2位同学for循环里的表达式不一样。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第八周 | 14小时 | 180 | C语言数据类型、换行符、printf函数 | 无 |
第九周 | 11小时 | 280 | 算术运算符、赋值运算符、if-else语句、scanf函数 | 无 |
第十周 | 12小时 | 350 | for循环,sqrt函数 | 循环表达式不会写 |
第十一周 | 10小时 | 300 | 生成乘方表和阶方表、自定义函数 | 如何自定义 |
第十二周 | 9小时 | 267 | if-else语句多分支结构 | 无 |
第十三周 | 10小时 | 200 | switch语句 | 对switch语句不熟悉,不会使用 |
第十四周 | 8小时 | 235 | while和do-while语句 | 无 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
这周的学习结束了,在这周我们学习了whil循环结构e以及do-while循环结构,这个知识点本身是不难的,我也掌握得还可以。这周由于自己其他工作原因,没有花很多时间在学习上,对于这个知识点的练习也没有,就是在写作业的时候也当作是练习了,pta上的作业增加了几道题,就我自己的时间来说,完成是有点困难的。继续加油吧!