函数声明第四章利用函数实现指定的功能
改章节笔者在广东逛街的时候突然想到的...今天就有想写几篇关于函数声明的博客,所以回家到之后就奋笔疾书的写出来发表了
//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; }
运行结果:
文章结束给大家分享下程序员的一些笑话语录:
一个合格的程序员是不会写出 诸如 “摧毁地球” 这样的程序的,他们会写一个函数叫 “摧毁行星”而把地球当一个参数传进去。