函数
题目1:
7-1 求组合数(15 分)
本题要求编写程序,根据公式Cnm=m!(n−m)!n!算出从n个不同元素中取出m个元素(m≤n)的组合数。
建议定义和调用函数fact(n)
计算n!
,其中n
的类型是int
,函数类型是double
。
1. 本题PTA提交列表
2. 设计思路
分别使用fact函数求累乘,再将最后结果进行处理
3.本题调试过程碰到问题及PTA提交列表情况说明
碰到问题:1.如何求累乘2.如何调用函数
第一次提交,函数最后return值有误。return 0后无结果,反复查看后发现错误改正。
题目2.
7-3 求幂之和(15 分)
本题要求编写程序,计算sum=21+22+23+⋯+2n。可以调用pow函数求幂。
1. 本题PTA提交列表
本题代码
2. 设计思路
思路:设计函数能使参数进行求幂之和,主要结构为循环结构。
3.本题调试过程碰到问题及PTA提交列表情况说明
碰到问题:1.形参与实参的相互传递2.子函数传值问题
第一次提交未在主函数中定义sum,固编译错误,根据提示改正。
第二次提交时没有在主函数中写sum=f(n),所以子函数传值无效,根据提示改正。
题目3.
7-5 近似求PI(15 分)
本题要求编写程序,根据下式求π的近似值,直到最后一项小于给定精度eps。
2π=1+31!+3×52!+3×5×73!+⋯+3×5×⋯×(2×i+1)i!+⋯
本题提交列表
本题代码
2.设计思路
应用循环结构求最后一项大小,同时求出各元素累加的值
3.本题调试过程碰到问题及PTA提交列表情况说明
碰到问题:循环逻辑不同,函数定义错误。
第一次提交输出格式错误,最后一位多出一个0,将"%lf"改为“%.5”则正确。
#代码互评
互评同学名称:张瑜
题目
7-8 求n以内最大的k个素数以及它们的和(20 分)
本题要求计算并输出不超过n的最大的k个素数以及它们的和。
2.代码对比
我的
张瑜
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
我用了数组结构,看起来稍显复杂。张瑜的程序简洁短小,一目了然,但数组结构可以清晰地表明程序是将数组中的数字往前推进,并且容易看懂,思路清晰,发现错误后也能顺着思路尽快找到。我更喜欢我的代码。
#三、PTA排名
#四、本周学习总结
1.你学会了什么?
1).函数的声明,定义和调用
2)函数的功能
3).实参和形参的关系
4).在函数中,数据的传递
5).局部变量和全局变量
2.本周的内容,你还不会什么?
感觉关于子函数释放结果的问题还有点迷糊,关于函数类型的选择也不太清晰,还需多加强基础知识。
3.其他总结
递归问题感觉一知半解,需要多找一些这方面的题型加深印象。