C语言I博客作业08


这个作业属于哪个课程 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语句后接上想要跳出循环的变量,则直接跳出循环到指定位置。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM