(3)实验实例

更新于 2026年10月10日 版权声明
(3)实验实例

1)输入2 个数值分别给a 和b,求最大值。要求将求解最大值的功能用自定义函数来实现。

【程序分析】

①输入a 和b 的值。

②利用if 语句实现判断并求得最大值。但是要把这部分书写为自定义函数。

③最后在主函数中完成变量定义,2 个数值的输入,函数的调用等步骤。

【参考程序】

图示

图示

图示

图示

【运行结果】如图9-1所示。

图示

图9-1 程序运行结果

2)输入一个正整数给n,求n!。

【程序分析】

①输入n 的值(建议此题用double 型进行变量的定义,如果要计算较大值的阶乘的时候,int 型只能表示最大值是约20 多亿)。

②方法1:可以使用连乘的方式实现。方法2:也可以使用函数递归调用的方式实现。

方法1:例如求5 的阶乘,其中jc=1*2*3*4*5,则可分析得出jc=jc*i; i∈[1,5]。

方法2:例如求5 的阶乘,其中5! =5*4!,4! =4*3!,3! =3*2!,2! =2*1!,1! =1。

再转换为函数形式,f(5) =5*f(4),f(4) =4*f(3),f(3) =3*f(2),f(2) =2*f(1),f(1) =1。

最后总结归纳,当n≥2 时,f(n) =n*f(n-1),当n==1 时,f(n) =1。

(提醒:函数的递归调用必须由2 个要素实现,其一是递归算法,其二是终结条件。)(https://www.daowen.com)

③最后利用自定义函数的方式实现。

【参考程序】

用一个主函数实现该功能(不带自定义函数)。

图示

图示

【运行结果】如图9-2所示。

图示

图9-2 程序运行结果

3)输入一个寝室6 个人本学期英语、高数、体育、毛概、程序设计技术、计算机导论等6 门科目的成绩。请用不同的自定义函数分别实现输入成绩、计算总分、计算平均分、输出成绩表。用学号来区分每个同学。

【程序分析】

①可以使用局部数组或者全局数组的方式实现,根据题目要求分析出需要用一个6 行9列的二维数组来实现。

②输入、计算总分和计算平均分、输出成绩表这3 个功能,都需要用循环来实现。

③无论是局部数组或者全局数组的方式实现,都有一个共性,调用函数的时候不需要返回值。(因为数组作为参数的时候,不用返回值即可在一个自定义函数中改变另外一个函数中的数组中的值,此部分参考理论教材。)

【参考程序】

图示

图示

图示

【运行结果】如图9-3、图9-4所示。

图示

图9-3 程序运行结果

图示

图9-4 程序运行结果

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)