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


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

    //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;
    }

        运行结果:

        

    文章结束给大家分享下程序员的一些笑话语录: 一个合格的程序员是不会写出 诸如 “摧毁地球” 这样的程序的,他们会写一个函数叫 “摧毁行星”而把地球当一个参数传进去。

  • 相关阅读:
    python报错Enable tracemalloc to get the object allocation traceback
    解决pycharm每次新建项目都要重新安装一些第三方库的问题
    创建一个CA证书
    [转载]oracle 12C 《服务器、客户端安装》
    [转载]Windows Server 2016中添加AD域控制器
    [转载]Windows Server 2016中部署AD
    虚拟机 VMware Workstation Pro 15.5.0 及永久激活密钥
    Oracle给查询结果增加序列号
    创建自定义ssl证书用于https
    js:getAttribute
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3047724.html
Copyright © 2020-2023  润新知