实验二函数的应用
一、实验目的
1、掌握函数的定义和调用方法。
2、掌握函数实参与形参的对应关系。
3、掌握函数嵌套调用和递归调用的方法。
二、实验内容与步骤
1、写一个判断素数的函数,在主函数中输入一个整数,输出是否是素数的信息。
2、编写重载函数Max可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。
3、递归函数与非递归函数。
编写一个函数,求从n个不同的数中取r个数的所有选择的个数。
其个数值为:n!
C r n=
r!*(n-r)!
其中:n!=n*(n-1)*(n-2)* (1)
要求:
(1)分别用递归和非递归两种方式完成程序设计;
(2)主程序中设计一个循环,不断从输入接收n和r的值,计算结果并输出,当用户输入0 0时,程序结束;
(3)能检查输入数据的合法性,要求n>=1并且n>=r;
(4)注意整数能存放的数据范围有限,如何解决?
提示:
(1)可以用double数据类型来存放函数的计算结果。
(2)递归结束条件:
如果r=0,则C(n,r)=1;
如果r=1, 则C(n,r)=n。
测试数据:
输入:5 3
输出:10
输入:10 20
输出:Iput Invalid1
输出:50 3
输出:19600
输入:0 0
程序结束
思考问题:
(1)对各种数据类型的字长是否有了新的认识?
(2)递归函数的书写要点是什么?
(3)递归和非递归函数各有哪些好处?
4、求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数,用另一个函
数求最小公倍数。
要求:
两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再和两个整数一起作为实参传递给函数2,以求出最小公倍数,再返回到主函数输出最大公约数和最小公倍数。