这个作业属于哪个课程 | C语言程序设计ll |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-1/homework/11489 |
我在这个课程的目标是 | 了解函数的定义和调用 |
这个作业在那个具体方面帮助我实现目标 | 熟练掌握函数的使用,了解如何制作思维导图 |
参考文献 | C语言程序设计,C Primer Plus(第六版),百度,markdown语法 |
1.PTA实验作业
从PTA题目集中选出2个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题20分(每项5分),内容要求如下:
1.1(7-2)求组合数
题目内容描述:本题要求编写程序,根据公式\(C=\frac{n!}{m!(n−m)!}\)算出从n个不同元素中取出m个元素(m≤n)的组合数。
建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。
1.1.1数据处理
·数据表达:用了i,m,n,result变量。其中i,m,n为整型变量,分别用于作为中间变量和输入的参数;result为双精度浮点型变量,作为最终的组合数
·数据处理:运用了for语句,使用了自定义函数,顺序结构。表达式为result=fact(n)/(fact(m)*fact(n-m))
·函数参数:主调函数为int main(),被调函数为double fact(int n),为double型。实参名称:n,m,result,类型:n,m为int型,result为double型,形参名称i, product,类型:i为int型, product为double型。
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2 7 | 21 | 样例 从7个不同元素中取出2个元素,m<n |
3 4 | 4 | 从4个不同元素中取出3个元素,m<n |
2 8 | 28 | 从8个不同元素中取出2个元素,m<n |
6 6 | 1 | 从6个不同元素中取出6个元素,m=n |
4 3 | 0 | m>n |
1.1.4 PTA提交列表及说明
提交列表说明:
1.编译错误:对自定义函数不太理解,没有声明自定义函数。解决办法是在头文件下定义一个函数。
2.编译错误:定义函数double fact(int n)后的分号忘记打。解决办法在后加上分号。
3.答案错误:表达式result写错,直接写成了result=fact(n)。解决办法将表达式改为result=fact(n)/(fact(m)*fact(n-m))。
4.多种错误:最后一个}忘记打,解决办法在最后加上}
1.2 (7-3) 求幂之和
题目内容描述:本题要求编写程序,计算\(sum=2^1+2^2+2^3+\cdots+2^n\)可以调用pow函数求幂。
1.2.1 数据处理
·数据表达:用了i,n,power,result变量。其中i,n为整型变量,power,result为双精度浮点型变量。n是由用户输入的值,i从初始值随循环不断加一,sum和result都与其他变量所共同决定。
·数据处理:运用了for循环,表达式为power=pow(2,i); result=result+power。
·函数参数:主调函数为int main(),为整型,被调用函数为#include<math.h>。实参名称:i,n,类型为整型;形参名称:power,result,类型为double型。
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
5 | result=62 | 样例 |
6 | result=126 | n<10 |
0 | result=0 | n=0为最小值 |
10 | result=2046 | n=10为最大值 |
11 | result=4094 | n>10 |
1.2.4 PTA提交列表及说明
提交列表说明:
1.答案错误:result未进行定义。解决方法:在主函数前将result进行定义。
2.格式错误:result等于号前后没有打空格。查找了好久没有找出来,不知道为什么格式错误,最后询问了同学才知道,要在等号两边打空格。解决办法在result等号前后加上空格。
2.代码互评
同学代码截图:
自己代码截图:
1.习惯定义的变量不同,同学定义的是sum,而我定义的是product。
2.同学的代码只运用到了一次for循环,而我的代码用了两次for循环。只使用一次减少了代码行数,更简洁明了,能使自己和他人更容易懂。
同学代码截图:
自己代码截图:
!
1.同学的代码排版十分简洁精炼,看起来很舒服,容易明白,而我的比较复杂。
2.同学定义变量比较清晰明确,用字母表示比较简单,检查时思路能够很清晰,值得我学习。
3.同学的代码使用了自定义函数,调用了函数define M(a),define Sum,,表示明确,我的没有调用这些函数。
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第八周/10.19~10.25 | 15小时 | 150行 | 在屏幕上显示Hello World!学会了怎样用PTA进行写代码作业,学会了markdowm语法 | 无 |
第九周/10.26~11.1 | 12 小时 | 350行 | 求华氏温度对应的摄氏温度 常量,变量和数据类型 知道以后要怎样向别人提问 | 变量问题,输入输出格式 |
第十周/11.2~11.8 | 20小时 | 460行 | for循环,if else语句 | 对于&的用法不了解,输出时保留几位小数 |
第十一周/11.9~11.15 | 17小时 | 440行 | 生成乘方表和阶乘表,对函数定义和调用,思维导图 | 目前不太熟练,调用函数不太理解 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
本周学习了生成乘方表和阶乘表,自定义函数,学会了制作思维导图。学到后面越来越难,现在学到的函数感觉比以前难得多,需要花费比以前更多的时间和精力。遇到的问题也越来越多,但在不断的学习过程中可以发现自己很多的不足,就会努力地去解决并从中收获到许多东西,不断地锻炼自己。这周c语言作业花的时间较多,但效率不高,目前基础不牢固,我需要提高学习效率,将基础打牢,在编程中需要更加仔细,有不懂得地方要积极询问他人,还要更努力,做到更好。