1.问题梗概:
1.为什么要用函数(设计实验、教案说明)
2.为什么要用函数重载(设计实验教案说明)
3.什么是值传递(设计实验和教案说明其过程,分析其特性)
4.什么是地址传递(设计实验和教案说明其过程,分析其特性)
5.设计实验和教案,分析如何编写递归函数
2.问题解决:
1.当你要多次使用一个功能时,如果不使用函数,就会使每次操作变得非常麻烦,因此通过使用函数可以提高我们的效率,下面我们就拿交换函数来举例:
#include "pch.h"
#include <iostream>
using namespace std;
void change(int &x, int &y)
{
int temp;
temp = x;
x = y;
y = temp;
}
int main()
{
int x,y;
cout << "请输入你要交换的两个数:" << endl;
cin >> x >> y;
change(x, y);
cout << "交换后的两个数为:" << x << " " << y << endl;
return 0;
}
通过设计交换函数,我们就可以轻松的进行交换操作啦。
2.
当我们想进行一个近似操作但又不想重复定义不同函数名时,就可以通过函数重载来实现,下面就拿加法函数举例子:
#include "pch.h"
#include <iostream>
using namespace std;
int add(int x, int y)
{
int sum = 0;
sum = x + y;
return sum;
}
double add(double x, double y)
{
double sum=0;
sum = x + y;
return sum;
}
int main()
{
double a, b,c,d,sum1,sum2;
cout << "请输入四个数" << endl;
cin >> a >> b >>c>>d;
sum1 = add(a, b);
sum2 = add(c, d);
cout << "第一个int的和为:" <<sum1<< endl;
cout << "第二个double的和为:"<<sum2 << endl;
return 0;
}
3.
值传递就是可以将两个数进行运算,但不改变其实际参数的值,下面用交换功能举例:
#include "pch.h"
#include <iostream>
using namespace std;
void swap(int x, int y)
{
int temp;
temp = x;
x = y;
}
int main()
{
int x, y;
cout << "请输入你要交换的两个数" << endl;
cin >> x >> y;
swap(x, y);
cout << "请打印出交换后的x,y的值:" << x <<" "<< y << endl;
return 0;
}
4.
地址传递就是指进行过一系列操作时,实参的值也会发生改变,还是拿交换举例
#include "pch.h"
#include <iostream>
using namespace std;
void swap(int *x, int *y)
{
int *temp;
temp = x;
x = y;
}
int main()
{
int x, y;
cout << "请输入你要交换的两个数" << endl;
cin >> x >> y;
swap(x, y);
cout << "请打印出交换后的x,y的值:" << x <<" "<< y << endl;
return 0;
}
5.
试求出1!+2!+3!+.....n!的和
#include "pch.h"
#include <iostream>
using namespace std;
int back(int n)
{
if (n == 1)
{
return 1;
}
else
{
return n * back(n - 1);
}
}
int main()
{
int i = 1, n,sum=0;
cout << "请输入你要求出的阶乘和上限" << endl;
cin >> n;
for (i = 1;i <= n;i++)
{
sum += back(i);
}
cout << "阶乘的结果为:" << sum << endl;
return 0;
}