问题 | 答案 |
---|---|
这个作业属于哪个课程 | c语言程序设计I |
这个作业的要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10030 |
我在这个课程的目标是 | 学好怎样精确地打代码,快速准确的完成PTA,在博客园上将自己的错误总结与归纳 |
这个作业在具体哪个方面帮助我实现目标 | 对自己打的代码进行纠错与记录,对别人的代码进行挑错与学习 |
参考文献 | Brian W.Kernighan, Dennis M.Ritchi |
作业格式
1.PTA实验作业
1.1 7-1 打印九九口诀表
* 题目内容描述:下面是一个完整的下三角九九口诀表:
###1.1.1 数据处理
* 1.数据表达:定义了三个整型变量i,j,N,i代表行,j代表列,所以使用了嵌套式语句来表示j与i之间的限制关系。
* 2.数据处理:用整型变量来完成对i,j,N的定义,使用for循环的嵌套式来进行对i,j的累加,例for(i=1;i<=N;i++) { for(j=1;j<=i;j++),可以使i,j逐步累积
1.1.2 实验代码截图
1.1.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
5 | ![]() |
这是5之前的乘法表,由小到大依次相乘 |
3 | ![]() |
这是3之前的乘法表,由小到大依次相乘 |
7 | ![]() |
这是7之前的乘法表,由小到大依次相乘 |
1.1.4提交列表及说明
* 答案错误:在编译器上运行的是正确的结果,说明编译没有错误,后来用运行的看了下,发现方向搞错了,就是本来应该为37=21,可运行的是73所以把定义的i和j换了位置,发现还是不对。
* 多种错误:重新审视了题目,看见题目要求等号右边数字占4位、左对齐,然后就开始空格,等号两边都空了两位,然后提交,发现是多种错误。
* 答案正确:去网上搜了一下,看见是要加一个%d*%d=%-4d的-4,又改了几个空格,结果就对了。
1.2 7-2 换硬币
* 题目内容描述:将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
1.2.1 数据处理
* 1.数据表达:用int定义了5个变量,x,count,i,m,j,依旧使用嵌套式的for循环语句
* 2.数据处理:例: if(5*i + 2*m + j == x){
printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",i,m,j,i+m+j);和
for(int i= x/5;i>0;i--){
for(int m = x/2;m>0;m--){
for(int j =x;j>0;j--){
if(5*i + 2*m + j == x){分别用不同语句形式完成安排。
1.2.2实验代码截图
1.2.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
8 | ![]() |
输出了8的零钱换法 |
17 | ![]() |
输出了17的零钱换法 |
23 | ![]() |
输出了23的零钱换法 |
1.2.4提交列表及说明
* 答案错误:printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",i,m,j,i+m+j)后面的一串字母没有想清楚该怎么进行,有一丝丝混乱,想的不到位,所以有错误;
* 格式错误:有一个地方需要加\n,忘记了,没有加,导致老是格式错误。
* 答案正确:注意了空格,一些基本的东西,提交就准确了。
二.代码互评
第一个是同学的,第二个是我的,我的写的比较复杂,同学的比较简洁,设置的变量也没有那么多,所以总的来说是第一个代码比较容易懂,当然我都代码也可以,再简洁一点就更好了。
3-1.学习进度条
周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第一周(9.19-9.27) | 7天 | 28行 | 学到了最简单的格式以及一些些语法,懂得一些编译的注意事项 | 不懂为什么要那样注意编译,错一个像欠一个空格这样的就都不对还有一些特定的符号的用处 |
第二周(9.25-10.4) | 5天 | 20行 | 学会了对于程序设计的一些东西,比如计算啊,就会自己开始编程,解决问题时就会简洁许多 | 不知道一些符号代表什么意思,就只是死记了下来 |
第三周(10.8-10.11) | 3天 | 102行 | 这周PTA作业较多,难度系数较大,因为都不是书上的,要自己开始琢磨,怎么去排列和提出问题,学会的东西也更多,知道自己编程和自己想办法去找错误,以及怎样思考这样的一些步骤 | 很多很多的#include代表什么意思,还增添了许多新符号,不知道是什么意思,只知道一些浅显的表层使用 |
第四周 | 8个小时 | 84行 | 学到了新的“for"循环语句,又多懂了一些格式的注意事项 | 有时候自己的循环体有点搞不清楚,到底该怎样去设 |
第五周 | 3天 | 89 | 学到了什么是调用函数(主调函数和被调函数)还有声明函数 | 有些函数类型还不是特别熟悉 |
第六周 | 3天 | 124 | 学了分支结构,更加熟练运用if和else语句 | 感觉还行,没有特别不会的地方 |
第七周 | 3天 | 91 | 学了switch语句,觉得更加好用,全是case比较简单实用 | switch语句掌握得还不是特别好,老是一下想不起来 |
第七周 | 3天 | 72 | 学了while语句和do while语句 | pta作业有点难,还有一些搞不清的地方,while和do while做题目的时候不知道用哪个 |
第八周 | 3天 | 60 | 本周学了foe循环的嵌套语句 | 本周作业没有完成得很好,还需要改进很多,对于for循环的使用得多多写写代码,才能越来越熟练。 |
累计代码行和博客字数
思维导图
3.3学习感悟
本周已经是第九周了,学的c语言知识越来越多,自己也需要好好整理整理了,所以得重复做做以前的做过的题目,看看还会不会,多多看看书,写写总结,这周学习了新的结构foe的循环嵌套结构,得牢牢掌握,所以必须多做练习题,多思考,多感悟,多总结。