c++第二次作业

关于函数

1.为什么要用函数

函数是对一些数据指令的封装,用函数可以减少重复的代码量,提高代码的质量。有利于代码重用,提高开发效率,增强程序的可靠性,也便于分工合作和修改维护。举一个例子吧,如果你是一名理发店里的洗头员工,你给第一位客人洗头的时候,要去放毛巾的地方拿毛巾,去放洗头护发素的地方拿洗头护发素,第二位客人来的时候,你重复上面的行为,如果客人很多,难道要一趟一趟的跑吗,这个时候,如果你把洗头护发素第一次拿过来了,就把它放在那里等着下次再用,就可以不用跑那么多趟了。函数的功能与此相似,节省重复的步骤。

2.为什么要用重载函数

什么是重载函数
两个以上的函数,具有相同的函数名,但是形参个数或类型不同,编译器根据实参的个数或类型进行最佳匹配,自动确定调用哪一个函数,这就是函数的重载。

当有多个功能相似的函数都出现在一个main函数里面被调用时,如果函数名各不相同,找到对应的要调用的那个函数相对比较难,需要一个一个的看函数内容。重载函数可以解决这个问题。

/*这里如果要对两个数进行求和,在找函数时就显得有点麻烦,尤其是函数个数较多时*/
int add1(int x, int y)
int add2(float x, float y)
int add3(double x, double y)
#include
using namespace std;
int add(int x, int y)
{
    return( x + y);
}
float add(float x, float y)
{
    return x + y;
}
double add(double x, double y)
{
    return x + y;
}
int main()
{
    int x, y;
    cin >> x >> y;

    float a,b;
    cin >> a >> b;

    double m, n;
    cin >> m >> n;
    cout<<"整型数的和为"<

3.什么是值传递

值传递是指当发生函数调用时,给形参分配内存空间,并用实参来初始化形参,这个过程是参数值的单向传递过程,一旦形参获得了值便于实参脱离关系,此后无论形参发生什么改变,实参不会受影响

假设我们要交换两个数的值,应该怎么做呢

#include
using namespace std;
void swap_1(int x,int y)
{
    int t;
    t=x;
    x=y;
    y=t;
}

int main()
{
    int a,b;
    cin>>a>>b;
    cout<<"没有交换时a,b为  "<
//结果展示
5 8
没有交换时a,b为  5;8
调用函数1后a,b为  5;8

4.什么是地址传递

#include
using namespace std;
void swap_2(int &x,int &y)
{
    int t;
    t=x;
    x=y;
    y=t;
}
int main()
{
    int a,b;
    cin>>a>>b;
    cout<<"没有交换时a,b为  "<
//结果展示
5 8
没有交换时a,b为  5;8
调用函数2后a,b为  8;5

5.如何编写递归函数

以经典的汉诺塔为例,想要把最大的盘子放在最下面,首先要把上面的其余盘子放在B上去,而又要将B的最大的盘子移过去,就又要把B的其余盘子放在A上,以此类推

#include
using namespace std;
void move(char src,char dest)
{
    cout<"<>m;
    cout<<"the steps to moving "<
//结果展示
输入碟子数目
3
the steps to moving 3diskes:
A-->C
A-->B
C-->B
A-->C
B-->A
B-->C
A-->C

你可能感兴趣的:(c++第二次作业)