C语言I博客作业04
1.作业头
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/SE2020-2 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11490 |
这个作业的目标 | <让我们学会定义函数和调用函数,并且学会作比较> |
学号 | <20209130> |
一、本周教学内容&目标
第2章 用C语言编写程序-函数 2.5 生成乘方表与阶乘表。使学生对函数的定义和调用有初步的认识,能模仿编程。
二、本周作业头
这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11490 |
我在这个课程的目标是 | <熟练掌握C语言编程,完全搞定C语言> |
这个作业在哪个具体方面帮助我实现目标 | <基础的函数调用和定义方面,还有对代码的思考和总结方面> |
参考文献 | https://www.cnblogs.com/hffgh65/p/13971426.html https://www.cnblogs.com/hlo20513/p/13956647.html (注:这里的两个链接是我取材“同学的代码截图”的地方,在此鸣谢!) |
三、本周作业
1.PTA实验作业
2.代码互评
3.学习总结
四、作业格式
1.PTA实验作业(20分/题)
1.1 7-1 C程序设计 习题 7.3 函数实现两个数的最大值 (2分)
用函数编程计算两个整数的最大值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最大值。
1.1.1数据处理
数据表达:用了a,b,m,都是整型变量,a,b的值是程序中自然输入,m的值是由a,b大小决定。
数据处理:表达式:m=fact(a,b);流程结构:if-else选择流程结构。
**函数参数:主调函数是main,被调函数fact,被调函数类型是整型,形参名称inta,intb,类型是整型,实参名称a,b,m,类型也是整型。**
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
10和20 | 20 | 20比10大 |
500和1000 | 1000 | 1000比500大 |
6和12 | 12 | 12比6大 |
-1和-9 | -1 | -1比-9大 |
1.1.4 PTA提交列表及说明
提交列表说明:
1.答案错误:调用函数时形参未定义数据类型,之后定义为整型,
2.答案错误:形参和实参的数据类型不一致,之后全部改为整型数据。
3.答案错误:调用函数最后未返回主函数,之后把被调函数中的return 0;全改为改为return m;。
1.2 7-2求组合数 (15分)
本题要求编写程序,根据公式Cnm=n!/m!(n−m)!算出从n个不同元素中取出m个元素(m≤n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。
1.2.1 数据处理
数据表达:用了n,m,i,result,product,整型是n,m,i,双精度浮点型是result,product,而n,m由scanf语句自然输入,result是最终输出的结果,i和product是随for循环语句变化而变化。
数据处理:表达式:result = fact(n)/(fact(m)*fact(n-m));和product=product*i;,流程结构:for循环流程结构。
**函数参数:主调函数是main,被调函数是fact,被调函数类型是双精度浮点型,形参名称是int n,类型是整型,实参名称是n,m,i,result,product。n,m,i是整型,result,product是双精度浮点型。**
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
1和2 | 2 | 小于20 |
5和8 | 56 | 大于20 |
8和10 | 45 | 大于20 |
20和50 | 47129212243960 | 远远大于20 |
1.2.4 PTA提交列表及说明
提交列表说明:
1.格式错误:前面一堆格式错误全是result = %.0f中间的两个空格少了,一直改没发现,之后仔细到恐怖的时候终于发现。
2.多种错误:空格少了和被调函数中的product没赋值为1一同形成多种错误,发现了后进行赋值和加空格就好了。
3.答案错误:没有限定小数位数,一开始打的是result=%f,之后改成result = %.0f,才限定了小数位数。
2.代码互评(5分)
同学代码截图:
自己代码截图:
1.打代码的顺序不同。我的代码是习惯先打主函数,在之后插入被调函数,而同学的是先进行被调函数的编程,再打上主函数,虽然功能和结果相同,但风格却迥然不同,
2.赋值习惯不同。我对变量的赋值是习惯再起一行进行赋值,而同学是定义之中直接赋值。
同学代码截图:
自己代码截图:
1.我习惯main函数后的()中打上void,而同学习惯省略。
2.同学习惯字符串之间用空格分开更有条理,而我习惯直接打完,一般不会加上空格。
3.我代表结果的变量习惯用double定义,而同学用int定义。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第八周 | 20h | 400 | 什么是主函数;代码的储存单元;会打“hello world” | 无 |
第九周 | 24h | 450 | 三个程序结构;各种数据类型;if-else语句的使用 | 无 |
第十周 | 28h | 500 | 三个运算的优先级;for循环语句的使用;会输出转换表 | for循环的嵌套有些不会 |
第十一周 | 30h | 600 | 进一步熟悉for循环语句;调用数学函数;自己定义函数 | 自己定义函数不太熟练 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
1.感觉这周比上周轻松些,这周作业和上周比就多了一个思维导图而已,可能也是我们有心理准备了,当然搞不好是我更强了呢??
2.这周也明显感到程序设计开始向更深处进发了,难度也提升了些,比如这个调用自己定义的函数就感觉比之前的基本流程结构的学习要更难一些。
3.这周对代码准确度的训练感觉还是很有成果的,比如在写pta的时候一些非常基本的编程错误没有再犯,然后对速度的提升也是明显的,现在打代码的速度比以前还是强了些些的。
4.但是这周思考代码没有什么成效,不知是我没感觉到自己的提升,还是没摸到头绪,就感觉思考完别人的代码的优秀之处,自己来打还是改变不多。
5.我发现我自己对预习这方面非常薄弱,得加强自身对课程的预习,这样才能学的更轻松,而且不止这门课程,其他课程也要加强。
6.这周总体来看还是可以的,虽然提升不多,也还算稳步提升,接下来不能放松自身,觉得有点成就就不管了,应该继续砥砺前行,冲!!!!