一、实验目的
(1)学习函数的定义和调用方法;
(2)学习通过参数在函数间传值的方法;
(3)熟悉Visual C++ 6.0 IDE或VC++ 2010调试函数的方法。
二、实验平台或环境
VC++ 6.0或VC++ 2010
三、实验内容和要求
(1)实验内容
实验五 函数(1)
(2)提交形式
电子报告+书面报告
四、实验步骤和结果
1.
\#include <iostream>
using namespace std;
int power(int,int);
int main(void)
{
int f(int,int);
int k,n;
cout<<"Please input k,n:";
cin>>k>>n;
cout<<"result="<<f(n,k)<<endl;
return 0;
}
int f(int n,int k)
{
int sum=0;
for(int i=1;i<=n;++i)
sum=sum+power(i,k);
return sum;
}
int power(int m,int n)
{
int product=1;
for(int i=1;i<=n;++i)
product=product*m;
return product;
}
2.
\#include <iostream>
using namespace std;
int prime(int);
void main()
{
int k;
for(k=3;k<100;k=k+2)
if(prime(k)&&prime(k+2))
cout<<k<<'\t'<<k+2<<endl;
}
int prime(int n)
{
for(int i=2;i<n;i++)
if(n%i==0)return 0;
return 1;
}
运行结果:8对
3 5
5 7
11 13
17 19
29 31
41 43
59 61
71 73
3.
\#include <iostream>
using namespace std;
int f2(int);
int main()
{
int n=0;
for(int m=999;m>=100;m--)
if(f2(m)){
n++;
if(n==2){
cout<<" 水仙花数中的次大值为:"<<m<<endl;
break;
}
}
return 0;
}
int f2(int m)
{
int i,j,k;
i=m/100;
j=(m-i*100)/10;
k=m%10;
if(m==i*i*i+j*j*j+k*k*k)return 1;
else return 0;
}
水仙花有4个:
1 407
2 371
3 370
4 153
次大值为 371
4.
\#include <iostream>
using namespace std;
void f(int k)
{
cout<<k<<'=';
int i=2;
while(k!=1)
{
while(k%i==0)
{
cout<<i;
k/=i;
if(k!=1)cout<<'*';
}
i++;
}
cout<<endl;
}
int main()
{
int k;
cout<<"请输入一个整数:";
cin>>k;
f(k);
return 0;
}
五、实验小结
通过本次试验我掌握了函数的定义,调用方法,参数的说明以及返回值,函数递归调用的设计方法等,逐步理解了函数调用的程序设计思想,学习过程常会遇到问题,因此需要认真理解,多作练习。