这个作业属于那个课程 https://edu.cnblogs.com/campus/zswxy/CST2020-1/
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11588
我在这个课程的目标是 熟悉while语句的使用
这个作业在个具体那方面帮助我实现目标 从题目中练习while语句的使用,熟悉while语句
参考文献 c语言程序设计(第三版)
学号 20208917

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

请再此处列出自己的排名图片,如:

1.1 题目名:求整数的位数及各位数字之和

题目内容描述:
对于给定的正整数N,求它的位数及其各位数字之和。输入格式:输入在一行中给出一个不超过10的9次方​​ 的正整数N。输出格式:在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。输入样例:321 输出样例:3 6

1.1.1数据处理

数据表达:定义了三个整型,分别为N,sum=0,num=0。
数据处理:输入一个整数N,符合while中的条件则进入循环(sum=N%10+sum; N=N/10;num++)之中,否则printf。

1.1.2实验代码截图

贴图展示代码,不要复制。请给出名字标识。

1.1.3 造测试数据

输出你的程序面向各种测试数据结果,除了题目给出的测试数据,可以自己再造其他临界数据,越多越好,并加上必要说明

输入样例 输出样例 说明
321 3 6 输入为321时,可得三位数,且相加为6,故输出为3 6
12 2 3 输入为12时,可得两位数,且相加为3,故输出为2 3
88887777 8 60 输入为88887777时,可得八位数,且相加为60,故输出为8 60

1.1.4 PTA提交列表及说明

根据PTA提交列表,简要描述调试程序碰到的问题及解决办法。

提交列表说明:

1.答案错误:只考虑循环次数num,没有把各个位数上的数累加起来。
2.编译错误:修改代码的时候丢失了符号。调试并进行修改。
3.答案错误:考虑了累加问题,却没有把每次循环余数的累加处理到位。通过取余数的办法来解决对应的位数上的数,再进行累加。

1.2 题目名:循环-古角猜想

题目内容描述:
日本数学家古角静夫研究自然数时,发现一个有趣现象:“如果是个偶数就除2,如果是奇数就乘以3加1”,经过有限个这样的处理步骤,最后一定能得到1. 任意输入一个自然数,给出得到结果1的运算过程。

输入格式:
输入一个自然数n

输出格式:
输出每次运算步骤,直到结果为1.

输入样例1:
5
输出样例1:
53+1=16
16/2=8
8/2=4
4/2=2
2/2=1
输入样例2:
6
输出样例2:
6/2=3
3
3+1=10
10/2=5
5*3+1=16
16/2=8
8/2=4
4/2=2
2/2=1

1.2.1 数据处理

数据表达:定义一个整型,为n。
数据处理:输入一个n,符合while语句则开始第一次循环,再是否满足if(或者是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 1 输入5,输出5*3+1=16,16/2=8,8/2=4,4/2=2,2/2=1
0 1 输入0,输出0*3+1=1
6 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

1.2.4 PTA提交列表及说明


列表提交说明:

1.编译错误:缺失了一个"}"。
2.格式错误:缺少了换行符“\n”。

2.代码互评(5分)

找2份同学代码,和自己代码比较,建议互评代码尽量找代码风格差异较大。

同学代码截图1:

同学代码截图2:

自己代码截图

别人用以前学的for语句来解题很好的回顾了以前的知识,同时,也可以得知同一题但是解题方法并不是唯一的。
将所学习的知识进行联系使用,我感觉更能巩固自己。

3.学习总结(15分)

3.1 学习进度条(5分)

3.2 累积代码行和博客字数(5分)

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

3.3.1 学习内容总结

3.3.2 学习体会

刚开始使用这个while的时候有点懵,直接把while当成了if语句来用,有时候不注意这个就直接无限循环了。还有就是if,switch,for,while的穿插使用,比较细节,感觉脑子哟要考虑很多细节上的东西。自我感觉的话,c语言还要多加练习。