
type name ( argument1, argument2, ...) statement
说明:
type 是函数返回的数据的类型
name 是函数被调用时使用的名
argument 是函数调用需要传入的参量(可以声明任意多个参量)。每个参量(argument)由一个数据类型后面跟一个标识名称组成,就像变量声明中一样(例如,int x)。参量仅在函数范围内有效,可以和函数中的其它变量一样使用, 它们使得函数在被调用时可以传入参数,不同的参数用逗号(comma)隔开.
statement 是函数的内容。它可以是一句指令,也可以是一组指令组成的语句块。如果是一组指令,则语句块必须用花括号{}括起来,这也是我们最常见到情况。其实为了使程序的格式更加统一清晰,建议在仅有一条指令的时候也使用花括号,这是一个良好的编程习惯。
2、示例:每一个C语言程序有且只有一个main函数,本身main就是一个函数。
int main()
{
return 0
}
编写一个函数,求从n个不同的数中取r个数的所有选择的个数。其个数值为:其中:
n!
=
n
*
(n-1)
*
(n-2)
*
...
*
1。
1、基本要求:
主程序中设计一个循环,不断从输入接收n和r的值,计算结果并输出,当用户输入0
0时,程序结束;
能检查输入数据的合法性,要求n>=1并且n>=r;
2、分别用递归和非递归两种方式完成程序设计;
3、多文件结构实现
将上面用非递归方式写成的程序改成用多文件结构表示。要求将main()函数放在一个文件中,将另外两个函数定义放在另一个C++源文件中,将两个函数原型申明放在一个C++头文件中。建立一个项目,将这三个文件加到你的项目中,编译连接使你的程序正常运行。
[测试数据]:
输入:5
3
输入:10
20
输入:-1
4
输入:50
3
输入:0
0
[实验提示]
1、利用一个非递归函数fn(int
n)计算n!,利用另一个函数Cnr(int
n,
int
r)计算Cnr,在该函数中调用fn(),
问题:你打算用什么样的变量类型来存放n!函数返回的值?注意各种数据类型的内存字长不同,整数能存放的数据范围有限,你如何解决?
可以用double数据类型来存放函数的计算结果
2、利用一个递归函数实现,利用公式实现递归:
C(n,r)
=
C(n,
r-1)
*
(n
–
r
+
1)
/
r
注意递归结束条件:
如果
r
=
0
,则C(n,
r)
=
1
如果
r
=
1,
则C(n,
r)
=
n
3、文件实现步骤:
新建一个项目,命名为“multifile”
用File|New创建一个新的”C++
Source
File”,命名为main.cpp
用File|New创建一个新的”C++
Source
File”,命名为func.cpp
用File|New创建一个新的”C/C++
Header
File”,命名为func.h
用File|Open打开你前面实验中用非递归方式求C(n,r)的C++源程序文件,将其中的主函数部分拷贝到main.cpp中,将其中的两个函数实现放到func.cpp中,再将两个函数的原型写到func.h中
在main.cpp
中包含进头文件:#include
“func.h”
编译连接该项目,运行它。你得到的结果应该和上一个实验一样。耽误大人半个小时,求解啊
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)