1.作业头
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/SE2020-2 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11585 |
这个作业的目标 | <熟悉while语句的使用,使编程更加简洁迅速> |
学号 | <20209120> |
一、本周教学内容&目标
第4章 循环结构 4.1-4.2 熟悉使用while和do-while结构解决问题。
二、本周作业
1.PTA实验作业
2.代码互评
3.学习总结
三、作业格式
1.PTA实验作业
1.1题目名1
对于给定的正整数N,求它的位数及其各位数字之和。
1.1.1数据处理
数据表达:运用变量a,n,s,c,四个变量都为整形,都是由自己赋值而来。
数据处理:
while(N!=0){
a=N%10;
N=N/10;
c++;
s=s+a;
}
1.1.2实验代码截图
1.1.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
611 | 3 8 | 这是个三位数,位数上各个数字之和为8 |
532 | 3 10 | 这是个三位数,位数上各个数字之和为10 |
5945 | 4 23 | 这是个四位数,位数上各个数字之和为23 |
1.1.4PTA提交列表及说明
问题:1.答案出现了错误,输出错误。
2.改正程序后答案正确了但格式不符合要求。
解决方法:1.检查一次,发现错误改正程序使结果正确。
2.检查是否少了空格,发现在输出时要用空格将结果分开。
1.2题目名2
日本数学家古角静夫研究自然数时,发现一个有趣现象:“如果是个偶数就除2,如果是奇数就乘以3加1”,经过有限个这样的处理步骤,最后一定能得到1. 任意输入一个自然数,给出得到结果1的运算过程。
1.2.1数据处理
数据表达:运用了a,b两个变量,且都为整形,a值输入得到,b值与a初始值相等。
数据处理:
while(a!=1){
if(a%2==0){
b=a;
a=a/2;
printf("%d/2=%d
",b,a);
}
else{
b=a;
a=a3+1;
printf("%d3+1=%d
",b,a);
}
}
1.2.2实验代码截图
1.2.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
1 | 不符合while进行的条件,不进行循环 | |
2 | 2/2=1 | 2为偶数除以2得到1退出据循环,输出结果 |
1.2.4PTA提交列表及说明
问题:1.运行时间超时,结果错误。
2.输出结果不符合题目要求。
解决方法:1.应该令b=a而不是a=b。
2.不小心把while打成了switch,将switch改成while。
2.代码互评
同学代码截图
自己代码截图
不同:1.思路上没什么区别,大致差不多。
2.我定义了N的取值范围,像是更加规范。
同学代码截图
自己代码截图
不同:1.他输出时直接用等式表示的,而我定义了一个数来表示,可能他的更简洁吧。
2.除一些表达形式不同其他大致相同。
3.学习总结
3.1学习进度条
周/日期 | 这周花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第八周/10.19~10.25 | 21小时 | 123 | 学会了用代码打出Hello World! | 无 |
第九周/10.26~11.1 | 18小时 | 389 | 学会了用代码来计算加减 | 无 |
第十周/11.2~11.8 | 14小时 | 526 | 学会了使用for循环语句 | 整形和浮点型的运用 |
第十一周/11.9~11.15 | 18小时 | 638 | 学会了去使用调用函数,计算n! | 调用函数适用于哪些地方 |
第十二周/11.16~11.22 | 16小时 | 864 | 学会了使用字符型,if else结构 | 字符型与其它数据类型怎么转换 |
第十三周/11.23~11.29 | 18小时 | 988 | switch语句的使用 | switch语句理解不够深,导致不能用于做题 |
第十四周/11.30~11.6 | 23小时 | 783 | while语句的使用 | 有些小细节还是弄不懂 |
3.2累积代码行和博客字数
时间 | 博客字数 | 代码行数 |
---|---|---|
第八周 | 172 | 123 |
第九周 | 355 | 389 |
第十周 | 658 | 526 |
第十一周 | 868 | 638 |
第十二周 | 946 | 864 |
第十三周 | 1023 | 988 |
第十四周 | 976 | 783 |