代码改变世界

C语言|博客作业09

2019-11-22 20:36  rebirthhhh  阅读(335)  评论(1编辑  收藏  举报

一、本周教学内容&目标

第4章 循环结构 4.3熟悉break、continue的使用 4.4 熟悉使用循环的嵌套解决问题。

二、本周作业头

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://www.cnblogs.com/zjzjaaa/p/int整形结构,for语句和if语句的循环
我在这个课程的目标是 熟练掌握continue语句,break语句,使用循环的嵌套结构来写代码解决问题
这个作业在那个具体方面帮助我实现目标 学习break,continue语句结构
参考文献 百度百科,C语言程序设计教材

三、本周作业

  1. PTA实验作业
  2. 代码互评
  3. 学习总结

四、作业格式

1.PTA实验作业(20分/题)

请再此处列出自己的排名图片,如:
image (1).png

从PTA题目集中选出2个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题20分(每项5分),内容要求如下:

1.1 题目名1

打印九九口诀表 (15 分)

下面是一个完整的下三角九九口诀表:

1*1=1   
1*2=2   2*2=4   
1*3=3   2*3=6   3*3=9   
1*4=4   2*4=8   3*4=12  4*4=16  
1*5=5   2*5=10  3*5=15  4*5=20  5*5=25  
1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  
1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  
1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  
1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81  

本题要求对任意给定的一位正整数N,输出从1*1N*N的部分口诀表。

输入格式:

输入在一行中给出一个正整数N(1≤N≤9)。

输出格式:

输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。

输入样例:

4

输出样例:

1*1=1   
1*2=2   2*2=4   
1*3=3   2*3=6   3*3=9   
1*4=4   2*4=8   3*4=12  4*4=16  
1.1.1数据处理
数据表达:运用了变量i,j,n。i表示行,j表示列,n就是数字。
数据处理:用到了for循环的嵌套,主要循环体结构是 (i=1;i<=N;i++) (j=1;j<=i;j++),%-4d表示等号右边数字占4位
1.1.2实验代码截图

![img](file:///D:\Documents\Tencent Files\1826959581\Image\C2C\O$GR_}P{FUFKA[Q8Y(AMYUF.png)

1.1.3 造测试数据
输入数据 输出数据 说明
4 1x1=1 1x2=2 2x2=4 1x3=3 2x3=6 3x3=9 1x4=4 2x4=8 3x4=12 4x4=16 此处用符号x代替了符号*,真实输出时是符号星字符
1 1x1 此处用符号x代替了符号*,真实输出时是符号星字符
2 1x1=1 1x2=2 此处用符号x代替了符号*,真实输出时是符号星字符
1.1.4 PTA提交列表及说明

![img](file:///D:\Documents\Tencent Files\1826959581\Image\C2C%ANLN[KZQ3%F0}XE9V_UT.png)

提交列表说明:

编译错误:在Dev-c++上尝试了几次嵌套循环,表达式可能不对,多次答案不符,查了百度后才弄清表达式关系,一开始还忘了定义变量N,看了老师上课讲的就原班打上去发现不对,因为没有仔细读题。

1.2 题目2

将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?

输入格式:
输入在一行中给出待换的零钱数额x∈(8,100)。

输出格式:
要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。

输入样例:

13

输出样例:

fen5:2, fen2:1, fen1:1, total:4
fen5:1, fen2:3, fen1:2, total:6
fen5:1, fen2:2, fen1:4, total:7
fen5:1, fen2:1, fen1:6, total:8
count = 4

1.2.1 数据处理
  • 数据表达:使用了整形变量x,i,w,a,b,c,d,count,x表示零钱数额,在循环中i储存五分硬币个数,w储存一分硬币个数,a表示最多五分硬币个数减一,b减去五分剩余的钱,c储存二分硬币个数,d减去五分和二分剩下的钱,储存换法个数。
  • 数据处理:表达式:fen5:%d, fen2:%d, fen1:%d, total:%d\n,i+1,w+1,d+1,i+w+d+3。
1.2.2 实验代码截图

img

1.2.3 造测试数据
输入数据 输出数据 说明
13 fen5:2, fen2:1, fen1:1, total:4/fen5:1, fen2:3, fen1:2, total:6/fen5:1, fen2:2, fen1:4, total:7/fen5:1, fen2:1, fen1:6, total:8/count = 4 零钱为13时,共4种换法,8枚硬币
5 count = 0 零钱为5时,没有换法
10 fen5:1, fen2:2, fen1:1, total:4/fen5:1, fen2:1, fen1:3, total:5/count = 2 零钱为10时,共2种换法,5枚硬币
15 fen5:2, fen2:2, fen1:1, total:5/fen5:2, fen2:1, fen1:3, total:6/fen5:1, fen2:4, fen1:2, total:7/fen5:1, fen2:3, fen1:4, total:8/fen5:1, fen2:2, fen1:6, total:9/fen5:1, fen2:1, fen1:8, total:10/count = 6 零钱为15时,共6种换法,10枚硬币
1.2.4 PTA提交列表及说明

![img](file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\1826959581\QQ\WinTemp\RichOle)5O4$IW]_C)4}JQSXG%T~}9.png)

  • Q1.编译错误:硬币的赋值错误导致编译错误。
  • A1.找到错误之后加了一个for语句。
  • Q2:部分正确:硬币的数量没有依次从大到小的顺序
  • A2:重新调换了一下顺序。

2.代码互评(5分)

同学代码截图

img

自己代码截图

img

不同点:他多用了一个for循环,其实没必要,第二个for之后就可以直接表示一分的了,那个if判断也没必要了

同学代码截图

img

自己代码截图

img

不同点:他的代码较为精简,我的走了点弯路,思路也有点不同

3.学习总结(15分)

3.1 学习进度条(5分)
周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第十三周 6h 400 熟悉break、continue的使用及熟悉使用循环的嵌套解决问题。 自己的想法不会用代码表达出来。
3.2 累积代码行和博客字数(5分)

img

3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结

这周学习了continue和break在循环语句中的作用,使用了循环的嵌套结构来写代码解决问题,又学会了解决问题的新方法,新语句。

3.3.2 学习体会

期末考试快来了还是有点慌,有些知识还是没有弄懂,上课认真听了还不行,还得自己课后去琢磨,还需要课前预习,我发现这和高中老师牵着走有很大不同,这个必须要自己主动,还要不怕枯燥,能够坚持,持之以恒,其实自己慢慢弄明白会更有学习的动力。