C语言I博客作业08
| 这个作业属于那个课程 | C语言程序设计II |
|---|---|
| 这个作业要求在哪里 | C语言I作业08 |
| 我在这个课程的目标是 | 熟练运用do-while语句 |
| 这个作业在那个具体方面帮助我实现目标 | 在PTA的练习中,和对知识的自我总结上 |
| 参考文献 | 集美大学林丽老师、百度文库、C语言程序设计 |
1.PTA实验作业

1.1 题目名1
求整数的位数及各位数字之和
对于给定的正整数N,求它的位数及其各位数字之和。
输入格式:
输入在一行中给出一个不超过10
9
的正整数N。
输出格式:
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
输入样例:321输出样例:3 6
1.1.1数据处理
{
定义变量N(用来存放输入的整数),i(用来存放整数的位数),c(整数中各位数的和)
i=0
c=0
对i,c初始化为0
while N>0(当N>0时)
{
c=N%10+c 对输入的数取余,得出个位数
N=N/10 用输入的除以10,删掉原本的个位数
i++ 累加位数
}
输出位数,各个位数的和的值
结束
}
1.1.2实验代码截图

1.1.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 456 | 3 15 | 输入的为三位数,他们的和为15 |
| 789 | 3 24 | 输入的为三位数,和为24 |
| 6589 | 4 28 | 输入的为四位数,和为28 |
1.1.4 PTA提交列表及说明

* 答案错误:在N>0中加了等于号,提交后发现错误又想了一遍
* 答案错误:输出的格式不对忘记加空格了,又看了一遍题才发现的
* 答案错误:把要输出的字母弄错了,看错误提示发现的
2.2题目名2
爬动的蠕虫
一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?
这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。
输入格式:
输入在一行中顺序给出3个正整数N、U、D,其中D<U,N不超过100。
输出格式:
在一行中输出蠕虫爬出井的时间,以分钟为单位。
输入样例:
12 3 1
输出样例:
11
1.1.1数据处理
{
定义变量N(井的深度),D(掉下来的长度),U(爬上去的长度),i(时间),a(实际上爬的长度)
a=0
i=0
对,a,c进行初始化为0
while a<=N 当a<=N时
{
i++ 对i进行累加
a=a+U; 对实际长度进行累加 其中的+U只有最后一次循环真正加了U的值
if a大于等于N
{
break; 跳出循环
}
else
i++ 继续累加时间
a=a-D; 减去U中多加的值
}
输出时间的值
结束
}
1.1.2实验代码截图
1.1.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 3 12 1 | 1 | D>N,所以不足一分钟,但是不足一分钟也算作一分钟 |
| 5 2 1 | 7 | N>D,当深5米,爬2米,掉1米时需要7分钟才能爬出去 |
| 9 5 3 | 5 | N>D,当深9米,爬5米,掉3米时需要5分钟才能爬出去 |
1.1.4 PTA提交列表及说明

*编译错误:printf后面的语句忘记打分号了,看了错误提示发现的
*部分正确:while语句中没打等于号,问了同学发现的
*部分正确:忘记给i赋值了,看了错误提示发现的
2.代码互评
自己代码:

同学代码:

* 同学用了for循环语句,而我用的是while循环语句。
* 同学用了数组s[i]存放数据,而我用的是字母C累加的方法计算数据。同学方法比较先进可以借鉴,不过我的方法比较好理解。
自己代码:

同学代码:
A同学:

B同学:

* A同学与我一样用了while循环语句,不过她的比我简洁了一些。可以学习一下她的方法
* B同学从循环一开始就用了if-else语句,而我是等到经过一系列循环后再使用if语句判断是否可以跳出循环语句。
3.学习总结
3.1 学习进度条
| 周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较困惑的问题 |
|---|---|---|---|---|
| 第六周 | 4天 | 20 | 用 MinGW-w64 来编译C程序,学习编程计算温度的转化 | 无 |
| 第七周 | 3天 | 99 | 学习用if,else等语句编译程序 | 无 |
| 第八周 | 2天 | 75 | 学习使用循环语句,用for来编译程序 | 无 |
| 第九周 | 3天 | 94 | 学习各种使用函数eg:fact(i) | for循环与while循环的区别 |
| 第十周 | 2天 | 213 | 学习使用多种分支结构 | 对分支结构中for循环有点迷糊不太能理解 |
| 第十一周 | 1天 | 135 | 学习使用switch语句 | 无 |
| 第十二周 | 1天 | 96 | 学习使用while语句 | 无 |
3.2 累积代码行和博客字数

3.3 学习内容总结和感悟
3.3.1 学习内容总结

3.3.2 学习体会
这周学习了while语句,这个语句在学习for循环的时候已经自己预先学习过,在学习for循环的时候,做PTA作业时我比较喜欢用while循环,因为它比较直接,简单。现在真正在课堂上接触它也感觉得心应手了很多。虽然在PTA的练习中我也时常出现许多小毛病,但是在思路方面变得熟练了很多然后在做博客园的总结中,使我能更深入的思考学过的知识点,并且提高了自己的总结能力。希望在以后的学习也能这样得心应手。随着PTA的难度、行数也在逐渐提高,代表着我需要更加努力!


浙公网安备 33010602011771号