这个作业属于那个课程 | 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
33+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语言还要多加练习。