C语言I博客作业09
一,本周作业内容&目标
第4章 循环结构 4.3熟悉break、continue的使用 4.4 熟悉使用循环的嵌套解决问题。
本周作业头
这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业的要求在哪里 | https://i-beta.cnblogs.com/posts/edit |
我在这个课程的目标是 | 学会更多的C语言语法 |
这个作业在那个具体方面帮助我实现目标 | 学会break、continue的使用 |
参考文献 | 教材和百度 |
三,本周作业
1,PTA实验作业
2,代码互评
3.学习总结
四,作业格式
1,pta实验作业
1.1题目名1
7-1 打印九九口诀表 (15 分)
下面是一个完整的下三角九九口诀表:
11=1
12=2 22=4
13=3 23=6 33=9
14=4 24=8 34=12 44=16
15=5 25=10 35=15 45=20 55=25
16=6 26=12 36=18 46=24 56=30 66=36
17=7 27=14 37=21 47=28 57=35 67=42 77=49
18=8 28=16 38=24 48=32 58=40 68=48 78=56 88=64
19=9 29=18 39=27 49=36 59=45 69=54 79=63 89=72 9*9=81
本题要求对任意给定的一位正整数N,输出从11到NN的部分口诀表。
输入格式:
输入在一行中给出一个正整数N(1≤N≤9)。
输出格式:
输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。
输入样例:
4
输出样例:
11=1
12=2 22=4
13=3 23=6 33=9
14=4 24=8 34=12 44=16
1.1.1数据处理
数据表达 :定义了整型变量n, i, j, k,其中n作为输入的基本数据,用于控制乘法表的大小,i, j, 是每一行和每一列的变量,可以有小变大,直到结果输出正确。
数据处理:伪代码
include<stdio.h>
int main()
{
int n;
int i,j,k;(定义各个变量)
scanf("%d",&n);(输入数据n)
for(i=1;i<=n;i++)(循环体,用于循环使用i)
{
for(j=1;j<=i;j++)(嵌套语句,是每一列逐渐加一,并且加到数字i时停止)
{
k = i*j;
printf("%d*%d=%-4d",j,i,k);
if(j==i)
printf("\n");
}
}
return 0;
}
1.1.2实验代码截图
1.1.3造测试数据
1.1.4pta提交列表及说明
Q1,答案错误:在编写过程中,没有加入&提取数据
A1,解决办法:在scanf语句里面加入&来提取n
Q1,多种错误:对输入的n没有确定终止,让程序一直向后面运行,
A1,解决办法:加入printf(“\n”)后解决。
1.2题目名2
7-2 换硬币 (20 分)
将一笔零钱换成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数据处理
数据表达:定义了kij分别代表′fen5 fen2 fen1,且都为整型变量,。
数据处理:伪代码
include<stdio.h>
int main()
{
int k, i, j, x, total, count=0;(定义各种数据的类型)
scanf("%d", &x);(输入总数x)
for(k=x/5; k>0; k--)(计算五的个数,并在后面不满足或者计算完后减小一位)
for(i=x/2; i>0; i--)
for(j=x; j>0; j--)
if(k5+i2+j==x){
printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n", k, i, j, k+i+j);(输出计算完成的数据)
count++;
}
printf("count = %d", count);(输出总硬币数)
return 0;
}
1.2.2实验代码截图
1.2.3造测试数据
1.2.4pta提交列表及说明
Q1编译错误:之前的编译错误是在思考怎么将三个数字分开,都想着从一开始计数,所以就出现了fen5比较大时,就出现错误的现象
A1解决方法:在次看完教材后,发现嵌套里面的循环的意义,就开始了从大的数据往小的编写,直接用输入的数据除五,就是五的最大,要是后面俩个数值存在就输出,不存在就把五的数值减小一位。
Q2运行超时:循环语句里面的判断语句书写错误致使程序没有停止。
A2解决方法:
2代码互评
代码差别:这个差别是在简便上面的差别,记得社团里面的学长教过一个写法,直接可以在循环语句里面加入定义的元素,这样既可以让整个代码简洁然后又能提高正确率
3.学习总结
3.1 学习进度条
时间 | 写代码所花时间 |
---|---|
四周 | 10 |
五周 | 8 |
六周 | 8 |
七周 | 6 |
八周 | 7 |
九周 | 5 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
嵌套语句的理解,其一他的出现让需要多次使用ifelse语句情况得到一个简便的解决方式,但同时也让同学们对程序的编写格式和分步骤的理解更加加强了不少,不然会在编写过程中出现这个嵌套是用来干吗的,它是谁的子语句这样的问题
3.3.2 学习体会
作业当中,看到了很多的知识是在课堂上面交过的,并且脸有些程序代码都一样,所以,课堂的重要就不言而喻了,到底是我没有听课还是没有认真看书,或者真的是这道题目他太难了,我的实力还写不了他,这样的想法有很多次并发出现在我的脑海里,在这之后,我开是询问朋友我理解这道题的编写,最中还是在朋友的帮助下完成这道题,学习他不是孤军,他也有战友,理解的好,就能一起远航,理解错了,那就是万丈深渊。