这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-2 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11611 |
这个作业的目标 | 学习break语句和continue语句并应用 |
学号 | 20208997 |
1.PTA实验作业(20分/题)
1.1 题目名1
打印九九口诀表
题目描述:
下面是一个完整的下三角九九口诀表:
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 * 1到N * 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数据处理
数据表达:本题变量为N,i,j,n,其中i,j,n通过定义得到,N通过输入得到;都为整型变量。
数据处理:运用for语句循环;表达式如下:
for(j=1;j<=N;j++){
for(i=1;i<=j;i++){
n=i*j;
伪代码为:定义所需变量N,i,j,n,
输入一个数N;
使用两个for循环语句(嵌套循环): 以简化代码
for(j=1;j<=N;j++){
for(i=1;i<=j;i++){
n=i*j;
最后输出所需的乘法表:printf("%d*%d=%-4d",i,j,n)
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2 | 1 * 1=1 1 * 2=2 2 * 2=4 | 从一乘一到二乘二,呈阶梯状 |
5 | 1 * 1=1······5 * 5=25 | 从一乘一到五乘五,呈阶梯状 |
7 | 1 * 1=1······7 * 7=49 | 从一乘一到七乘七,呈阶梯状 |
9 | 1 * 1=1······9 * 9=81 | 从一乘一到九乘九,呈阶梯状 |
1.1.4 PTA提交列表及说明
提交列表说明:
格式错误:因为代码打成出来没有间隔,导致格式错误。
解决方式:在输出语句中加上-4d:printf("%d*%d=%-4d",i,j,n);最后编译正确。
1.2 题目2
一钱生多钱
题目描述:
在日常生活中,我们常常需要将一些大额的人民币换算成零钱,已知我们有许多面值5元,2元和1元的人民币。
编程实现:输入我们需要兑换的金钱数,然后我们用这些面值5元,2元和1元的人民币来兑换,要求每一种面值都至少有1张,然后输出有多少种兑换方式。
输入格式:
输入在一行中给出待换的零钱数额(大于等于8小于等于100)
输出格式:
每行输出一种兑换方式,按照如下格式输出(并且每一种面值的人民币都是从小到大输出):
five=五元数量,two=两元数量,one=一元数量
输入样例:
在这里给出一组输入。例如:
13
输出样例:
在这里给出相应的输出。例如:
five=1,two=1,one=6
five=1,two=2,one=4
five=1,two=3,one=2
five=2,two=1,one=1
1.2.1 数据处理
数据表达:本题变量为n,x,y,z,count,n通过输入得到,都定义为整型。
数据处理:运用for循环语句进行嵌套循环,再运用一个for语句,表达式如下:
for (x = 1; x<= n / 5; x++)
for (y = 1; y<= n / 2;y++)
for (z = 1; z<= n; z++)
if (5 * x + 2 * y + z == n)
最后输出得到答案。
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
8 | five=1,two=1,one=1 | 8可分为一个五,一个二,一个一,为题目要求的最小值 |
5 | 无输出 | 小于题目要求的大于8小于100 ,所以不符合,无输出 |
9 | five=1,two=1,one=2 | 9可分为一个五,一个二,两个二,为中间值 |
11 | five=1,two=1,one=4或five=1,two=2,one=2 | 11可分为一个五,一个二,四个一或者一个五,两个二,两个一,为中间值 |
1.2.4 PTA提交列表及说明
提交列表说明:
编译错误:在编译过程中if语句中只打了一个等号,赋值错误。
解决方式:提交后根据提示发现错误,及时改正。
2.代码互评(5分)
同学代码截图1
自己代码截图1
不同之处:
1.该同学变量定义较少,如j*i,我则是另行定义n=j * i,他使得代码更为简洁。
2.且该同学在输出语句后又使用了一个for语句,增加了i<N的条件,而我这里则没有这一项。
同学代码截图2
自己代码截图2
不同之处:
1.该同学变量都为相应的英文字母,而我的则是取一个最简字母作为变量,相对简便。
2.且该同学没有定义一个新的变量去累加,而是直接在for语句中累加,这样看起来更为简短。
3.学习总结(15分)
3.1 学习进度条(5分)
周/时间 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第一周 | 5h | 68 | 简单编程 | 无 |
第二周 | 15h | 251 | 算数运算和赋值运算 | 无 |
第三周 | 25h | 368 | for循环语句的应用,浮点型的学习 | 无 |
第四周 | 26h | 379 | 自定义函数和调用函数 | 对调用函数的应用还不够清楚 |
第五周 | 28h | 356 | 分支结构中的if-else语句 | 对于使用分支结构的逻辑还不够清晰 |
第六周 | 30h | 398 | switch语句的学习和应用 | 对于题目中的逻辑先后问题还不太能理解 |
第七周 | 28h | 360 | while语句及do-while语句的学习及运用 | 这两种的具体循环点及循环特点 |
第八周 | 26h | 343 | break语句的深层次学习及continue语句的学习 | break语句与continue语句的用法区别及两种语句的使用位置 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
1.在本周我们学习了break语句和continue语句,在课堂上,听老师讲感觉是不难,但是到了做题目时就觉得不会了。还是得要多看看书。
2.这已经是第十五周,马上就是十六周了,离考试也不远了,看着这些题目,我都感觉我要挂科了,越到后面就越有这样的感觉。
3.关于老师上课时留给我们的问题——如何使用break语句跳出整个大循环:
1. 可以在所有循环中都添加break语句。
2. 使用在循环中使用goto语句,goto语句后接上想要跳出循环的变量,则直接跳出循环到指定位置。