C语言I博客作业07
作业头
这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11591 |
我在这个课程的目标是 | 学习并掌握while结构 |
这个作业在那个具体方面帮助我实现目标 | 精选的PTA题目和博客中代码之间的对比 |
参考文献 | 《C语言程序与设计》,百度 |
学号 | 20209057 |
1.PTA实验作业(20分/题)
1.1 求整数的位数及各位数字之和
对于给定的正整数N,求它的位数及其各位数字之和。
输入格式:
输入在一行中给出一个不超过10
9
的正整数N。
输出格式:
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
输入样例:
321
输出样例:
3 6
1.1.1数据处理
数据表达:用了n,count,sum整形变量来表示相关数据;
数据处理:如果(n>0){
sum=sum+n%10;
n=n/10;
count++;
}
输出("%d %d",count,sum);
结束;
}
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
321 | 3 6 | 题目原数据,检验三位数 |
26 | 2 8 | 检验两位数 |
20 | 2 2 | 检验两位数中个位数是0的数 |
5 | 1 5 | 检验一位数 |
1.1.4 PTA提交列表及说明
遇到的问题:大致的思路还是有的,就是总是出现语法错误;
解决方法:根据系统提示找到错误信息并改正。
1.2 循环-古角猜想
日本数学家古角静夫研究自然数时,发现一个有趣现象:“如果是个偶数就除2,如果是奇数就乘以3加1”,经过有限个这样的处理步骤,最后一定能得到1. 任意输入一个自然数,给出得到结果1的运算过程。
输入格式:
输入一个自然数n
输出格式:
输出每次运算步骤,直到结果为1.
1.2.1 数据处理
数据表达:定义了n,m整形变量来表示相关数据;
数据处理:读取数值scanf();
如果(n!=1){
if(n%2==0){
m=n;
n=n/2;
输出("%d/2=%d\n",m,n);
}
else{
m=n;
n=3n+1;
输出("%d3+1=%d\n",m,n);
}
结束;
}
1.2.2实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
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 | 检验一位数偶数 |
16 | 16/2=8 8/2=4 4/2=2 2/2=1 | 检验两位数偶数 |
15 | 153+1=46 46/2=23 233+1=70 70/2=35 353+1=106 106/2=53 533+1=160 160/2=80 80/2=40 40/2=20 20/2=10 10/2=5 5*3+1=16 16/2=8 8/2=4 4/2=2 2/2=1 | 检验两位数奇数 |
1.2.4 PTA提交列表及说明
问题:拿第一题练了手后,做这道题犯的错少了很多,除了一点语法错误之外没其他问题;
解决方法:根据系统提示找到错误信息并改正。
2.代码互评(5分)
同学代码
我的代码
不同点:TA的使用了pow函数来限制变量的取值范围,我的没有,从中发现到自己的不足之处,并做出了改正。
同学代码
我的代码
不同点:TA用了if语句把等于1的情况写了出来,而我的没有,相对来说我的要简略一些。
3.学习总结(15分)
3.1 学习进度条(5分)
时间 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第六周 | 6~7个小时 | 244 | if分支结构和switch | 看到很大段的题目就不想做;思路不是很清晰,其他的都还好 |
第七周 | 9个小时 | 230 | while3.3.2 学习体会语句do-while语句 | 极个别还行,其他大题都很头疼,没什么思路 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
头晕。。。。。。
这周学的新知识不太会运用,题目有那么一两个会做,其他的真的难搞。
一看到字数很多的题目我就开始慌。。。。。
学习了do-while语句,了解其使用的条件及方法。