C语言I博客作业04
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-1 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11493 |
这个作业的目标 | 会使用自定学义函数,能够清楚的描述好自己写的代码,学会阅读别人的代码,总结学过的内容。 |
学号 | <20208956> |
这个作业属于哪个课程 | C语言程序设计II |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11378 |
我在这个课程的目标是 | 会使用自定学义函数,能够清楚的描述好自己写的代码,学会阅读别人的代码,总结学过的内容。 |
这个作业在那个具体方面帮助我实现目标 | 代码互评,PTA实验作业数据处理,学习总结 |
参考文献 | C语言程序设计(3)、C primer plus |
1.PTA实验作业(20分/题)
1.1 数字金字塔
本题要求实现函数输出n行数字金字塔。函数接口定义:
void pyramid( int n );
其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行数字金字塔。注意每个数字后面跟一个空格。
1.1.1数据处理
数据表达:自定义函数中定义了i,j,k.全为整型。
数据处理:
首先进行for(i=1;i<=n;++i)确定行数。使用for循环嵌套for(j=1;j<=n-i;j++)输出每行的空格printf(" ")
再接着进行for(k=1;k<=i;k++)输出每行数字printf("%d ",i),在每行的数字输出完后换行printf("\n")
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
4 | ![]() |
小于5 |
5 | ![]() |
等于5 |
6 | ![]() |
大于5 |
10 | ![]() |
大于9 |
1.1.4 PTA提交列表及说明
编译错误:忘记打分号
格式错误:输出结果中数字没有均匀间隔开。
1.2 求组和数
本题要求编写程序,根据公式算
出从n个不同元素中取出m个元素(m≤n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。
1.2.1 数据处理
数据表达:主函数中定义了m,n,都为整型、定义result为双精度浮点型。
数据处理:result=fact(n)/(fact(n-m)*fact(m)),自定义函数fact()计算result。
在fact()函数内部,定义i(整型)、product(浮点型),用到for循环语句求product:product=product*i,最后返回product的值。
**函数参数:主函数main,自定义函数fact,自定义函数为double类型。实参m,n为整型,result为双精度浮点型。形参i(整型),product(双精度浮点型)。**
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2 7 | result = 21 | m=2,n=7,m<n |
7 2 | result = 0 | m=7,n=2,m>n |
2 2 | result = 1 | m=n |
7 7 | result = 1 | m=n |
1.2.4 PTA提交列表及说明
编译错误:for()里面的语句1和2之间用了用了中文分号。
答案错误:在使用scanf()输入时将m与n的输入顺序弄反。
答案错误:忘记在自定义函数后加上return product;
2.代码互评(5分)
同学代码截图
自己代码截图
1、处理问题的方式不同。第一种的做法是将三个数中其中两个数依次比较大小,依次筛选。第二种依次将三个数的位置进行交换。
2、if和if-else的使用不同。第一种相较第二种会繁琐一些,但是更容易想到。
3、定义变量的方式不同。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第八周 | 18 | 220 | printf,scanf的使用,以及int类型 | |
第九周 | 22 | 231 | if语句分支结构、调用数学函数 | |
第十周: | 25 | 255 | for语句、字符型数据的使用 | switch语句多分支结构、break语句和continue语句 |
第十一周 | 28 | 600左右 | switch语句,逻辑运算符,数组,自定义函数 | 多个循环结构的嵌套使用容易出错 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
到目前为止,我已经明显的感觉到自己与别人的差距,很多同学的学习进度比我快很多,理解程度也比我更深。
对自己的要求不够高,训练太少,我发现自己手写代码和在电脑上写相比,手写非常生疏。并且在遇到一个同样或类似的问题时并不能快速反应出来。
学习效率很低,做同样的事情要比其它同学花更多的时间,不敢尝试自己的想法,怕麻烦。
见识太少,遇到新的问题就束手无策,感觉自己还是阅读代码太少了,只管自己扎头写,没有多花时间去吸收别人的优点,发散性思维能力较弱。对一些难一点的题目有害怕的心理,不敢去做。
接下来应该改正这些问题,多花时间与同学交流思想,阅读其他人的代码,多思考,不怕难,不怕麻烦,多尝试自己的想法,不断积累解决各种问题的方法,拓宽眼见。
3.3.1 学习内容总结
请用思维导图的形式将到目前为止所学的内容进行整理。
采用专业的思维导图软件,建议可以是:MindManager、XMind、iMindMap、FreeMind、Mindomo、MindNode……等等之一。
3.3.2 学习体会
C语言的学习需要大量的积累,一定要培养解决新问题的能力,学会“偷懒”多思考寻找简单的方法,分而治之,要定期总结自己对各种问题的的解决方法、思路。
多画流程图、思维导图等,在每次练习时尽量给自己设定合适的时间,尽量做到按时完成,训练自己的速度。