您的位置:首页 > 其它

函数声明第四章利用函数实现指定的功能

2013-04-27 19:14 447 查看
改章节笔者在广东逛街的时候突然想到的...今天就有想写几篇关于函数声明的博客,所以回家到之后就奋笔疾书的写出来发表了

//p89
//在主函数中调用其他函数
#include <iostream>
using namespace std;
void printstar(void)
{
cout<<"******************************"<<endl;
}
void print_message(void)
{
cout<<"	Welcome to C++!"<<endl;
}
int main(void)
{
printstar();
print_message();
printstar();
return 0;
}

运行结果:



//p91
//调用函数时的数据传递
#include <iostream>
using namespace std;
int max(int x,int y)
{
int z;
z=x>y?x:y;
return z;
}
int main()
{
int a,b,c;
cout<<"Please enter two integer numbers:"<<endl;
cin>>a>>b;
c=max(a,b);
cout<<"max="<<c<<endl;
return 0;
}

运行结果:



//p95
//对被调用的函数做声明
#include <iostream>
using namespace std;
int main()
{
float add(float x,float y);//对add函数作声明
float a,b,c;
cout<<"Please enter a,b:"<<endl;
cin>>a>>b;
c=add(a,b);
cout<<"sum="<<c<<endl;
return 0;
}
float add(float x,float y)//义定add函数
{
float z;
z=x+y;
return z;
}

运行结果:



//p98
//求四个数中的大最数
#include <iostream>
using namespace std;
int main()
{
int max_4(int,int,int,int);//max_4函数的声明
int a,b,c,d,max;
cout<<"Please enter 4 interger numbers:"<<endl;
cin>>a>>b>>c>>d;
max=max_4(a,b,c,d);
cout<<"max="<<max<<endl;
return 0;
}
int max_4(int a,int b,int c,int d)//义定max_4函数
{
int max(int,int);//max函数的声明
int m;
m=max(a,b);
m=max(m,c);
m=max(m,d);
return m;
}
int max(int x,int y)//义定max函数
{
if(x>y)
return x;
else
return y;
}

运行结果:



//p101
//递归调用求春秋
#include <iostream>
using namespace std;
int age(int);//函数声明
int main()
{
cout<<age(5)<<endl;
return 0;
}
int age(int n)//函数义定
{
int c;
if(n==1)
c=10;
else
c=age(n-1)+2;
return c;
}

运行结果:



//p102
//用递归求n!
#include <iostream>
using namespace std;
long fac(int);//函数声明
int main()
{
int n;
long y;
cout<<"Please input an integer:"<<endl;
cin>>n;
y=fac(n);
cout<<n<<"!="<<y<<endl;
return 0;
}
long fac(int n)//递归函数义定
{
long f;
if(n<0)
{
cout<<"n<0,data error!"<<endl;
f=-1;
}
else if(n==0||n==1)
f=1;
else
f=fac(n-1)*n;
return f;
}

运行结果:



//p103
//函数指定为置内函数
#include <iostream>
using namespace std;
inline int max(int,int,int);//声明置内函数,左端有inline
int main()
{
int i=10,j=20,k=30,m;
m=max(i,j,k);
cout<<"max="<<m<<endl;
return 0;
}
inline int max(int a,int b,int c)//义定max为置内函数
{
if(b>a)//求a,b,c的大最者
a=b;
if(c>a)
a=c;
return a;
}

运行结果:



//p105
//函数的重载
#include <iostream>
using namespace std;
int main()
{
int max(int,int,int);//函数声明
double max(double,double,double);//函数声明
long max(long,long,long);//函数声明
int i1,i2,i3,i;
cin>>i1>>i2>>i3;
i=max(i1,i2,i3);
cout<<"i_max="<<i<<endl;
double d1,d2,d3,d;
cin>>d1>>d2>>d3;
d=max(d1,d2,d3);
cout<<"d_max="<<d<<endl;
long g1,g2,g3,g;
cin>>g1>>g2>>g3;
g=max(g1,g2,g3);
cout<<"g_max="<<g<<endl;
return 0;
}
int max(int a,int b,int c)//义定求三个整数中的大最者的函数
{
if(b>a)
a=b;
if(c>a)
a=c;
return a;
}
double max(double a,double b,double c)//义定求三个双精度中的大最者的函数
{
if(b>a)
a=b;
if(c>a)
a=c;
return a;
}
long max(long a,long b,long c)//义定求三个长整数中的大最者的函数
{
if(b>a)
a=b;
if(c>a)
a=c;
return a;
}

每日一道理

春蚕死去了,但留下了华贵丝绸;蝴蝶死去了,但留下了漂亮的衣裳;画眉飞去了,但留下了美妙的歌声;花朵凋谢了,但留下了缕缕幽香;蜡烛燃尽了,但留下一片光明;雷雨过去了,但留下了七彩霓虹。

运行结果:



//p106
//求三个或两个整数的大最值
#include <iostream>
using namespace std;
int main()
{
int max(int,int,int);//函数声明
int max(int,int);//函数声明
int a=8,b=-12,c=27;
cout<<"max(a,b,c)="<<max(a,b,c)<<endl;
cout<<"max(a,b)="<<max(a,b)<<endl;
return 0;
}
int max(int a,int b,int c)//义定求三个数大最值的函数
{
if(b>a)
a=b;
if(c>a)
a=c;
return a;
}
int max(int a,int b)//义定求两个数大最值的函数
{
if(a>b)
return a;
else
return b;
}

运行结果:



//p107
//利用函数模板求三个数的大最值(整数,双精度,长整数)
#include <iostream>
using namespace std;
template <typename T>//模板声明,其中T为型类参数
T max(T a,T b,T c)//义定一个通用函数,用T作虚拟的型类名
{
if(b>a)
a=b;
if(c>a)
a=c;
return a;
}
int main()
{
int i1=185,i2=-76,i3=567,i;
double d1=56.87,d2=90.23,d3=-3214.78,d;
long g1=67854,g2=-912456,g3=673456,g;
i=max(i1,i2,i3);//调用模板函数,T被int替换
d=max(d1,d2,d3);//T被double替换
g=max(g1,g2,g3);//T被long替换
cout<<"i_max="<<i<<endl;
cout<<"d_max="<<d<<endl;
cout<<"g_max="<<g<<endl;
return 0;
}

运行结果:



//p109
//应用带认默参数的函数求两个或三个数中的大最数
#include <iostream>
using namespace std;
int main()
{
int max(int a,int b,int c=0);//函数声明,参形c有认默值
int a,b,c;
cin>>a>>b>>c;
cout<<"max(a,b,c)="<<max(a,b,c)<<endl;
cout<<"max(a,b)="<<max(a,b)<<endl;
return 0;
}
int max(int a,int b,int c)//函数义定
{
if(b>a)
a=b;
if(c>a)
a=c;
return a;
}

运行结果:





//p115
//用static声明静态局部变量
#include <iostream>
using namespace std;
int f(int a)//义定f函数,a为参形
{
auto int b=0;//义定b为动自变量
static int c=3;//义定c为静态局部变量
b=b+1;
c=c+1;
return a+b+c;
}
int main()
{
int a=2,i;
for(i=0;i<3;i++)
cout<<f(a)<<" ";
cout<<endl;
return 0;
}

运行结果:



//p116
//用static声明静态局部变量,求出1到5的阶乘
#include <iostream>
using namespace std;
int fac(int);//函数声明
int main()
{
int i;
for(i=1;i<=5;i++)
cout<<i<<"!="<<fac(i)<<endl;
return 0;
}
int fac(int n)
{
static int f=1;//f为静态局部变量,函数结束时f的值不释放
f=f*n;//在f原值基础上乘以n
return f;
}

运行结果:



//p118
//用extern声明外部变量
#include <iostream>
using namespace std;
int max(int,int);
int main()
{
extern int a,int b;//对全局变量a,b作前提用引声明
cout<<max(a,b)<<endl;
return 0;
}
int a=15,b=-7;//义定全局变量a,b
int max(int x,int y)
{
int z;
z=x>y?x:y;
return z;
}

运行结果:



//p118
//file1
//用extern在多文件中声明外部变量
#include <iostream>
using namespace std;
extern int a,b;//对a,b作外部变量声明
int main()
{
cout<<a<<","<<b<<endl;
return 0;
}

//file2
int a=3,b=4;

运行结果:



//p124
//file1
//用外部函数现实求两个数的大最值
#include <iostream>
using namespace std;
int main()
{
extern int max(int,int);//声明在本函数中要调用其他文件中义定的max函数
int a,b;
cin>>a>>b;
cout<<max(a,b)<<endl;
return 0;
}

//file2
int max(int x,int y)//省略extern默以为外部函数
{
int z;
z=x>y?x:y;
return z;
}

运行结果:



文章结束给大家分享下程序员的一些笑话语录:
一个合格的程序员是不会写出 诸如 “摧毁地球” 这样的程序的,他们会写一个函数叫 “摧毁行星”而把地球当一个参数传进去。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐