一、本周教学内容&目标
第4章 循环结构 4.1-4.2 熟悉使用while和do-while结构解决问题。
二、本周作业头
这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | |
我在这个课程的目标是 | <学会循环结构,了解并熟悉while和do-while结构解决问题> |
这个作业在那个具体方面帮助我实现目标 | |
参考文献 | <<集美大学林丽老师>> |
三、本周作业
1.PTA实验作业
2.代码互评
3.学习总结
四、作业格式
1.PTA实验作业(20分/题)
请再此处列出自己的排名图片
从PTA题目集中选出2个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题20分(每项5分),内容要求如下:
1.1 题目名1 (7-2 韩信点兵 (10 分))
题目内容描述:
在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:
按从1至5报数,记下最末一个士兵报的数为1;
再按从1至6报数,记下最末一个士兵报的数为5;
再按从1至7报数,记下最末一个士兵报的数为4;
最后按从1至11报数,最末一个士兵报的数为10;
请编写程序计算韩信至少有多少兵。
输入格式:
本题无输入
输出格式:
输出韩信至少拥有的士兵人数。
1.1.1数据处理
介绍实现本题过程中,你的数据表达、数据处理是怎么做的。注意:请务必按照以下方式书写。
数据表达:定义了一个整型变量i用于控制循环变量
数据处理:
表达式:i%5==1&&i%6==5&&i%7==4&&i%11==10
结构式:用了for循环语句以及使用break跳出循环
伪代码:
include
int main()
{
int i=0; //定义变量i,i用来表示韩信的兵
while(7)
for (i = 1;; i++) //使用for循环结构
{
if ((i % 5 == 1) && (i % 6 == 5) && (i % 7 == 4) && (i % 11 == 10)) //根据题意写出每次报数的数据
{
printf("%d\n", i);
return 0;
}
}
}
1.1.2实验代码截图
贴图展示代码,不要复制。请给出名字标识。
1.1.3 造测试数据
输出你的程序面向各种测试数据结果,除了题目给出的测试数据,可以自己再造其他临界数据,越多越好,并加上必要说明
输入数据 | 输出数据 | 说明 |
---|---|---|
7本题无输入 | 本题无输入 | 2111人 |
1.1.4 PTA提交列表及说明
根据PTA提交列表,简要描述调试程序碰到的问题及解决办法
答案错误:在(i % 5 == 1) && (i % 6 == 5) && (i % 7 == 4) && (i % 11 == 10))加上了;
本题的难点就在于i%5==1&&i%6==5&&i%7==4&&i%11==10 这个条件,在这上面多花一点功夫就好。
1.2 题目2(7-5 爬动的蠕虫 (15 分))
题目内容描述
一条蠕虫长1寸,在一口深为N寸的井的底部。已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。在休息的过程中,蠕虫又下滑了D寸。就这样,上爬和下滑重复进行。请问,蠕虫需要多长时间才能爬出井?
这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。初始时,蠕虫是趴在井底的(即高度为0)。
输入格式:
输入在一行中顺序给出3个正整数N、U、D,其中D
输出格式:
在一行中输出蠕虫爬出井的时间,以分钟为单位。
输入样例:
12 3 1
输出样例:
11
1.2.1 数据处理
介绍实现本题过程中,你的数据表达、数据处理是怎么做的。注意:请务必按照以下方式书写。
数据表达:使用了N,U,D,L,time.5个变量,N代表井的深度,U和D分别代表蠕虫一分钟能向上爬与向下滑了多少寸,L表示蠕虫爬行的距离,time表示爬行所用的时间
数据处理:
数据类型:year,mouth, day, number都为整型。
表达式:while(L
L=L+U;
流程结构:while结构。
伪代码
include
int main()
{
int N,U,D,L; //n为井的深度,u为蠕虫一分钟爬的距离,D为休息时下滑的距离,time为爬出井的总时间,L为蠕虫爬行的距离。
scanf("%d %d %d",&N,&U,&D);
int time;
time=L=0;
while(L
L=L+U; //蠕虫爬行的距离等于之前的加上所爬的距离
if(L>=N) //当爬行的距离大于等于井的深度时
break; //跳出语句
L=L-D; //计算爬虫总距离减去下滑的距离
time++; //加上爬虫休息的时间
}
printf("%d",time);
return 0;
}
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
15 4 3 | 23 | 如果井深为15寸,蠕虫每分钟爬行4寸,休息时下降3寸,则需要23分钟才能爬上去 |
10 5 2 | 5 | 如果井深为10寸,蠕虫每分钟爬行5寸,休息时下降2寸,则需要5分钟才能爬上去 |
9 5 4 | 9 | 如果井深为9寸,蠕虫每分钟爬行5寸,休息时下降4寸,则需要9分钟才能爬上去 |
15 5 2 | 9 | 如果井深为15寸,蠕虫每分钟爬行5寸,休息时下降2寸,则需要9分钟才能爬上去 |
1.2.4 PTA提交列表及说明
根据PTA提交列表,简要描述调试程序碰到的问题及解决办法
1.编译错误:在第5行的函数定义上多加了一个;导致语句停止。
2.代码互评(5分)
找2份同学代码,和自己代码比较,建议互评代码尽量找代码风格差异较大。
第一张 (7-2 韩信点兵)
同学代码截图 <<[C语言I作业08 戳你脸 (https://www.cnblogs.com/lky-29/p/11858200.html)>>
自己代码截图
答:第一个同学的代码和我的有很多不同
1.我用的代码定义了变量i,运用while语句,而他则定义n运用for循环语句。
第二张 (7-13 整数的分类处理)
同学代码截图
答:第二个同学
1.同学的代码用的是for循环,而我的代码用的是while语句以及if-else语句
3.学习总结(15分)
$3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | |
---|---|---|---|---|
第六周 | 8小时 | 300行 | 常用的数学函数,if-else语句,for语句,自定义函数 | 不会用自定义函数 |
第七周 | 7小时 | 400行 | 二分支结构和用char输入字符 | 对于字符型的代码有点看不懂 |
第八周 | 10小时 | 420行 | 多分支结构,switch语句 | switch语句用得有点混乱 |
第九周 | 13小时 | 450行 | 自定义函数的用法,怎样用一个算法来运算多个式子 | if语句的嵌套不明白是怎样分支的 |
第十周 | 18小时 | 500行 | 多分支结构、字符型数据类型和逻辑运算符 | 目前不太熟练并且字符型还没熟悉 |
第十一周 | 12小时 | 600行 | 熟悉多分支结构switch语句的使用 | switch后的表达式是否有要求 |
第十二周 | 8 | 205 | do-while语句和while,for语句的区别 | continue不知道怎么去用 |
3.2 累积代码行和博客字数(5分)
时间 | 博客字数 | 代码行数 |
---|---|---|
第六周 | 585 | 300 |
第七周 | 1366 | 400 |
第八周 | 1624 | 420 |
第九周 | 1583 | 400 |
第九周 | 1891 | 500 |
第十周 | 1921 | 550 |
第十一周 | 2377 | 600 |
第十二周 | 1656 | 620 |
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
请回顾自己的本周的学习过程,描述学习感受,也可以提出你不理解的地方、对教师教学建议等。如果你有新的想法或者新的方法,请及时记录下来。
1.本周我们学习了do-whule语句,并且把while语句,do-while语句和for语句的区别弄清楚了。
2.for语句和do-while语句都是先判断符不符合条件再执行循环体,一般在知道循环次数的情况下使用for语句,不知道循环次数则使用while语句。
3.do-while语句是不管怎样都会先执行一次循环体,再判断是否符合条件,再执行循环体
4.百度是个好东西,尤其是对于初学者来说!
5.希望自己多学一点,走在老师前面