函数
一、PTA实验作业
题目1:求组合数
1. 本题PTA提交列表
2. 设计思路
这题求的是组合数,即阶乘,因为要求三个阶乘,所以调用一个求阶乘的函数,最后printf s=jc(n)/(jc(m)*jc(n-m))即可。
子函数中写一个循环,求n个数的阶乘,再返回x的值。三个不同的参数调用同一个函数,即可方便地求出组合数。
3.本题调试过程碰到问题及PTA提交列表情况说明
错误一:子函数中,求阶乘时,x=x*i而不是x*(i+1),这样求出来的阶乘答案会出错。
错误二: 主函数中 s=jc(n)/jc(m)*jc(n-m),因为后两个相乘的是一个整体,所以要加个括号。
错误三:s的变量类型定义为整型的,导致m=n/2结果小于1时,因为不是浮点型,所以直接输出0.应把S定义成double 。
题目2:求幂之和
1. 本题PTA提交列表
2.设计思路
本题较为简单,调用一个求幂之和的函数,主函数中只要简单写输入和输出即可。
子函数用循环和数学函数计算幂之和,注意头文件调用#include<math.h>。
题目3:近似求PI
1. 本题PTA提交列表
2.设计思路
题目要求求近似pi,给的是pi/2,所以先求出pi/2,再在printf 中乘以2即可。
在函数中结合采用阶乘和求和,用while 循环,当最后一个值小于esp 时跳出循环,再把值返回给子函数。
3.本题调试过程碰到问题及PTA提交列表情况说明
错误一:没有考虑eps较大和较小的情况,还有格斯没按pta要求来导致答案错误。
二、同学代码结对互评
我的代码子函数中直接算结果,需要多次循环算阶层,没有简化程序,依琳是求阶层和,程序比较简洁,她的更好。
三、本周题目集的PTA最后排名
四、我的学习总结
我学会了什么
1.函数类型和函数返回值类型相同
有多种结束函数途径的话一定要有多个return
2.函数形参的传递关系,是实参传给形参
3.利用函数的形式,可以减少程序的一些循环算法,使程序变得简单
4.int类型的函数可以不用声明,void类型的函数没有返回值
2、不会的地方
对于函数的使用还不够熟练,有些题目即使用函数简单也会想要避开函数直接写,但往往更麻烦。
应加强函数的训练,多打函数的代码。