贺宏辉

 

C语言I博客作业07

这个作业属于哪个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11588
我在这个课程的目标是 学会使用while和do-while结构解决问题
这个作业在那个具体方面帮助我实现目标 PTA的作业
参考文献 c语言程序设计(第三版)

1.PTA实验作业(20分/题

1.1 7-1 求整数的位数及各位数字之和 (15分)
对于给定的正整数N,求它的位数及其各位数字之和。

1.1.1数据处理

数据表达:定义了整形的n,c,sum
数据处理:运用了while的循环结构,表达式:sum=n%10+sum;  n=n/10;  c++;

1.1.2实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
321 3 6 输入为321时,得3位数,相加为6,故输出为3 6
1562 4 14 输入为1562时,得4位数,相加为14,故输出为4 14
42389 5 26 输入为42389时,得5位数,相加为26,故输出为5 26

1.1.4 PTA提交列表及说明

答案错误:最后的输出字母c打成了字母n,以后要区分好每个定义的字母,注意每个字母代表的意义。

1.2 7-3 循环-古角猜想 (20分)
日本数学家古角静夫研究自然数时,发现一个有趣现象:“如果是个偶数就除2,如果是奇数就乘以3加1”,经过有限个这样的处理步骤,最后一定能得到1. 任意输入一个自然数,给出得到结果1的运算过程。

1.2.1 数据处理

数据表达:定义了整形的n
数据处理:运用了while的循环结构并内嵌了if-else的分支结构。输入一个n,符合while语句则开始第一次循环,判断是否满足if(n%2==0)或者是else,然后按 printf("%d/2=%d\n",n,n/2)或printf("%d*3+1=%d\n",n,n*3+1)条件进行循环,直到n=1时停止循环。

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据 说明
5 5*3+1=16,16/2=8,8/2=4,4/2=2,2/2=1 输入5,则输出5*3+1=16,16/2=8,8/2=4,4/2=2,2/2=1
6 6/2=3,33+1=10,10/2=5,53+1=16,16/2=8,8/2=4,4/2=2,2/2=1 输入6,则输出6/2=3,33+1=10,10/2=5,53+1=16,16/2=8,8/2=4,4/2=2,2/2=1
11 113+1=34,34/2=17,173+1=52,52/2=26,26/2=13,133+1=40,40/2=20,20/2=10,10/2=5,53+1=16,16/2=8,8/2=4,4/2=2,2/2=1 输入11,则输出113+1=34,34/2=17,173+1=52,52/2=26,26/2=13,133+1=40,40/2=20,20/2=10,10/2=5,53+1=16,16/2=8,8/2=4,4/2=2,2/2=1

1.2.4 PTA提交列表及说明

编译错误:int main()后面打了分号
格式错误:printf语句后面没有打\n

2.代码互评(5分)
同学代码截图1:

同学代码截图2:

自己代码截图:

1.同学1运用了whlie和switch结构,相对而言我的代码更简单,语句也跟少。
2.同学2运用了whlie和if-else结构和我的一样,但他的代码有点杂乱,我的更清晰整洁。
3.学习总结(15分)
3.1 学习进度条(5分)

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第10周 11 120 循环和分支 不会有flag写循环语句
第11周 16 150 调用函数 对如何调用函数的步骤还有些模糊
第12周 13 125 多分支结构
第13周 12 130 switch的多分支结构 还不能熟练使用switch的多分支结构,很多时候第一时间会想到if语句
第14周 15 230 while和do-while的循环结构 不能很快看出PTA的题目与while和do-while的循环结构之间的联系
3.2 累积代码行和博客字数(5分)

3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结

3.3.2 学习体会
刚接触whlie循环结构时还有点懵懂,看到PTA的作业时就彻底懵逼了,但结合他人的作业尝试去做时就能够清晰的使用whlie循环结构,说明想要熟练通过编程解决
问题还是要不断的练习。

posted on 2020-12-07 13:15  贺宏辉  阅读(110)  评论(1编辑  收藏  举报

导航