c语言I作业09
这个作业属于哪个课程 | 这个作业要求在哪里 | 我在这个课程的目标是 | 这个作业在哪个具体方面帮助我实现目标 | 参考文献 |
---|---|---|---|---|
C语言程序设计II | https://edu.cnblogs.com/campus/zswxy/SE2019-1/homework/9980 | 熟练掌握程序语言的编写,了解各种函数的应用。 | 掌握break和continue语句 | 百度百科 |
1.PTA实验作业
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.1.1数据处理
数据表达:定义整形变量 N,i,j其中i,j用于循环条件,N用于确定输出行数。
伪代码:定义i,j
输入行数N的格式
for(i=1;i<=N;i++)后面数字的循环
for(j=1;j<=i;j++)前面数字的循环
printf("%d*%d=%-4d",j,i,i*j);数字相乘并输出
printf("\n");输完一行进入下一行
1.1.1 实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
4 | 11=1 12=2 22=4 13=3 23=6 33=9 14=4 24=8 34=12 44=16 | 题目说明 |
2 | 11=1 12=2 2*2=4 | 简短运算 |
1.1.4PTA提交列表及说明
编译错误:%-4d其含义是输出格式为整形,长度为4,左对齐;最开始没有明白这个
答案错误:&N我写成&n,没有区分大小写,三个答案错误都是没找到这个细节错误
1.2将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
输入格式:
输入在一行中给出待换的零钱数额x∈(8,100)。
输出格式:
要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。
1.2.1 数据处理
数据表达:首先定义整形变量b,n,x,total,count,其中分别代表5分,2分,1分硬币,零钱数额,硬币总数
伪代码:定义b, n, m, x, total, count=0;
给硬币总数x输入格式
for(b=x/5; b>0; b--)五分硬币的循环
for(n=x/2; n>0; n--)两分硬币的循环
for(m=x; m>0; m--)一分硬币的循环
if(b*5+n*2+m==x)printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n", b, n, m, b+n+m);符合条件输出总数
printf("count = %d", count),最后一行输出“count = 换法个数”
1.1.2 实验代码截图
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 | 题目给出 |
9 | fen5:1, fen2:1, fen1:2, total:4 count = 1 | 随机 |
1.2.4 PTA提交列表及说明
这道题是在devc++上面编译的所以是正确的,简单来说一说我遇到的问题,最开始不知道怎么输出换法个数,后面仔细看了题目才知道,for循环的时候硬币数目是逐渐减少的。
2.代码互评
2.1同学代码截图
2.2自己代码截图
1、我只用了while,同学用的是do-while
2、同学用了嵌套语句用break跳出循环,而我只用了while语句
3、同学用了2个if嵌在while里面,我只用了1个if,我的更为简洁
3.1 学习进度条
周数/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第四周/10-17 | 约5小时 | 300行左右 | “for”循环结构语句的基本使用 | 对循环结构的使用不熟练。 |
第五周/10-24 | 约4小时 | 280行左右 | 定义函数的使用 | 对pta上的作业题目很难读懂意思 |
第六周/10-31 | 约5小时 | 350行左右 | 逻辑表达式 关系表达式 | 听课听得懂 做题不会做 |
第七周/11-6 | 约5小时 | 300行左右 | switch语句,char数据类型 | 题目大致能看懂,细致末梢难以处理 |
第八周/11-13 | 约6小时 | 350行左右 | 熟悉使用while和do-while结构解决问题。 | 结构的运用 |
第九周/11-21 | 约7小时 | 400行左右 | 区别break与continue语句 | 对数学知识头疼 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
长风破浪会有时,直挂云帆济沧海!在学习的过程中难免会遇到困难但是我们要不畏惧困难 要努力克服学习上的困难,c语言的学习需要夜以继日的练习,不然很容易生疏。这周又学习了新的综合程序设计分支结构,还有char数据类型,switch语句,以及break的使用,收获颇丰,虽然感觉还是挺难得,但是也很有趣。这一个月学习的最多的就是for while if-else break continue等语句, 哪一步设置循环,循环结束的条件是什么,嵌套循环怎么使用都是这个月学习的难点,感觉做pta需要数学基础,不然题目都可能看不懂。