实验三函数调用
一、目的和要求
,理解函数的调用;
、嵌套调用;
,以及参数默认值的设置。
、内联函数的基本概念。
二、实验设备及分组
1. Windows2000以上操作系统;
2. Visual C++;
3. 每人一台PC机。
三、内容和步骤
(一)验证实验程序
,用递归的方法求1+2+3+4+…+n的值。在主函数中进行输入输出。
解:
#include <>
int fun(int n)
{
int z;
if(n<=0)
z=0;
else
z=n+fun(n-1);
return(z);
}
void main(void)
{
int x,sum;
cout<<"请输入X的值"<<endl;
cin>>x;
sum=fun(x);
cout<<"求和结果为:"<<sum<<endl;
}
运行结果:
请输入X的值
10
求和结果为:55
,输入m和n(n>m),求的值。
分析:已知
根据公式,只要自定义一个函数计算阶乘,即可通过函数调用求出的值。
解:
阶乘函数定义如下:
double fact(int k)
{
int p=1;
if((k==0)||(k==1))
return p;
else
{
for(int i=1;i<=k;i++)
p=p*i;
return p;
}
}
一个完整的参考程序如下:
#include <>
double fact(int);
void main()
{
int m,n;
double c;
cout<<"please input"<<endl;
cout<<"n=";
cin>>n;
cout<<"m=";
cin>>m;
if (n<m) {
cout<<"n must bigger than m!,please reinput:"<<endl;
goto l1;
}
c= fact(n)/( fact(m)* fact(n-m));
cout<<"c="<<c<<endl;
}
double fact(int k)
{
int p=1;
if((k==0)||(k==1))
return p;
else
{
for(int i=1;i<=k;i++) p=p*i;
return p;
}
}
思考:
l 分别输入n=0,1,3,m=0,1,2测试程序。
l 试用静态存储变量设计阶乘函数。
,求两个自然数m和n的最大公约数和最小公倍数。
解:
#include <>
int fun1(int c,int d)
{
int r;
r=c%d;
while(r!=0)
{
c=d;
d=r;
r=c%d;
}
return d;
}
void main()
{
int m,n,e,d;
cout<<"m n=";
cin>>m>>n;
e=fun1(m,n);
d=m*n/e;
cout<<" 最大公约数为:"<<e<<endl;
cout<<" 最小公倍数为:"<<d<<endl;
}
思考:
l 输入两个数m=36,n=24观察程序运行结果。
l 用递归调用的方法实现程序编写,参考程序如下:
# include <>
int fun1(int c,int d)
{
int r;
r=c%d;
if(r!=0)
{
c=d;
d=r;
fun1(c,d);
}
return d;
}
void main()
{
int m,n,e,d;
cout<<"m n=";
cin>>m>>n;
e=fun1(m,n);
d=m*n/e;
cout<<" 最大公约数为:"<<e<<endl;
cout<<" 最小公倍数为:"<<d<<endl;
}
l 编写计算三个数最大公约数的程序。
,使用函数重载计算圆的面积。
分析:由于参数只有一个圆的半径,所以只能对不同类型的参数实现重载。
解:程序如下
#include <iostre
实验三函数 来自淘豆网m.daumloan.com转载请标明出处.