C++第二次作业
函数
为什么使用函数
- 封装代码,使程序功能结构化,简介代码,方便后期修改和维护。
#include<iostream>
using namespace std;
int add(int x, int y)
{
int r = x + y;
return r;
}
int main()
{
int one = 1, two = 2;
cout << add(one, two) << endl;
return 0;
}
为什么使用函数重载
- 使拥有同一个函数名的函数,以不同参数来得以区分,降低拥有近似功能的函数命名难度
#include<iostream>
using namespace std;
int add(int x, int y)
{
return x + y;
}
int add(double x, double y)
int add(double x, double y, double z)
{
return x + y + z;
}
int main()
{
cout << add(1, 2) << endl;
cout << add(1.2, 2.2) << endl;
cout << add(1.3, 2.3, 3.3) << endl;
return 0;
}
什么是值传递
- 指函数调用传递数值。调用函数时,仅将实参的值赋给形参,对实参不产生影响。
#include<iostream>
using namespace std;
void exchange(int x, int y) //交换x和y
{
int temp = x;
x = y;
y = temp;
}
int main()
{
int x = 3, y = 5;
exchange(x, y);
cout << x << endl;
cout << y << endl; //x和y在调用函数后值未发生交换
return 0;
}
什么是地址传递
- 指函数调用时传递实参地址。调用函数时,形参发生变化,实参会跟着变化。
#include<iostream>
using namespace std;
void exchange(int &x, int &y) //用传递x和y的地址来交换x和y
{
int temp = x;
x = y;
y = temp;
}
int main()
{
int x = 3, y = 5;
exchange(x, y);
cout << x << endl;
cout << y << endl; //x和y的值发生了交换
return 0;
}
递归函数
- 递归函数指在函数内部调用自己,降低函数复杂度。
- 设计实验,编写斐波那契函数:
#include <iostream>
using namespace std;
int feibo(int n)
{
if (n == 0)
return 0;
else if (n == 1)
return 1;
else
return feibo(n - 1) + feibo(n - 2);
}
int main()
{
int n;
cout << "输入一个值:";
cin >> n;
cout << feibo(n) << endl;
return 0;
}