一、本周教学内容&目标
第4章 循环结构 4.1-4.2 熟悉使用while和do-while结构解决问题。
二、本周作业头
1.PTA实验作业
1.1 7-1 求整数的位数及各位数字之和
题目内容描述:
对于给定的正整数N,求它的位数及其各位数字之和。
输入格式:
输入在一行中给出一个不超过10^9的正整数N。
输出格式:
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
1.1.1数据处理
数据表达:定义整形变量正整数N,g为求余后数的最后一个个数,total为g之和,sum1表示为位数
数据处理:
int /定义变量/
scanf()
while(终止条件)
g=N%10; /求出数字后面最后一位数/
total=total+g; /求出各位数字之和/
N=N/10;
sum1++; /求位数/
输出结果
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 |
输出数据 |
说明 |
321 |
3 6 |
题目示例 |
95 |
2 14 |
N为两位数时 |
3896 |
4 26 |
N为四位数时 |
1.1.4 PTA提交列表及说明
说明:
1.答案错误:忘记给total与sum1赋值,后面改为total=0,sum1=0;
1.2 7-5 爬动的蠕虫
题目内容描述:一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?
这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。
输入格式:
输入在一行中顺序给出3个正整数N、U、D,其中D<U,N不超过100。
输出格式:
在一行中输出蠕虫爬出井的时间,以分钟为单位。
1.2.1 数据处理
数据表达:定义了整形变量N为井的总长,U为蠕虫一分钟上爬的高度,D为蠕虫一分钟休息时下降的高度,s为蠕虫爬过的路程,t为蠕虫爬完整个井时所花时间
数据处理:
int /定义变量/
scanf
while(s<U) /只要爬的路程小于井长就继续循坏/
s=s+U; /每分钟所向上爬的长度/
t++; /累加时间/
if(s<N){ /if语句,如果s没有大于井长/
s=s-D; /每分钟要减去休息时下降的路程/
t++; /累加时间/
}
输出结果
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 |
输出数据 |
说明 |
12 3 1 |
11 |
题目示例 |
20 4 2 |
17 |
N不超过100 |
99 6 2 |
49 |
N为不超过100时最大的数字 |
1.2.4 PTA提交列表及说明
1.答案错误:一开始以为是一道很容易的数学题,所以是直接U-D去算的,发现好像忘记如果上行U的时候已经到达井口了,那就不需要算D的时长了,于是多加了一个if语句来判断是否S已经超过N
2.代码互评
题目名称:7-2 韩信点兵
同学代码:来自计科一班彭齐家同学
我的代码:
不同:
1.他用的for循环语句,我用的while语句
2.for语句中,i++条件写在了括号中而while语句中需要多加上一个else
题目名称:7-1 求整数的位数及各位数字之和
同学代码:来自计科二班颜婷同学
我的代码:
不同:
1.我用的是while结构,她用的do-while结构,少一次条件
2.她将除法的放置前面,求余放置后面,改变N值,少一次次数,用b在前面补上少的一次,我的是直接将求余的放置前面,除法的放置后面
3.学习总结
3.1 学习进度条
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
这周PTA作业本来想攻克第五题的,但是还是写不出来,想了挺久的,一直运行超时,不过时间有限,没有继续攻克。多增加自己的知识丰富自己的阅历,多做题目,可能就可以很快解出来了,最主要的还是自己练习太少了,然后这周新知识接收的还可以,希望自己再接再厉,然后在自己这些天来接触这门语言,自己也喜欢上了这门语言,增添了许多信息,写PTA和博客园的速度也快速了,挺开心的。宝剑锋从磨砺出,梅花香自苦寒来,刻苦努力就是自己的代名词