|
【实训目的】学习嵌套调用
【第 1 步】实训内容介绍
实训内容:通过一个例子(杨辉三角)学习嵌套调用。
前置条件:掌握函数的声明、定义和调用
实训过程:
1. 实训内容介绍
2. 编写求阶乘函数
3. 编写求杨辉三角项的函数,其中调用求阶乘函数
4. 编写输出指定数量空格的函数,完成杨辉三角的编写
5. 实训结束
【Jitor 校验第 1 步】我已阅读实训内容介绍 // 送分题。直接点击。
【第 2 步】编写求阶乘函数
1、在项目 cpp5 中创建名为 cpp5_8 的源代码文件,如果项目不存在,则先创建项目,然后创建源代码文件。
2、将下述代码复制到刚刚创建的 cpp5_8 中:
#include <iostream.h>
int factorial(int);
void main(void) {
int n;
cout << "输入N: ";
cin >> n;
cout << "n的附乘是 {" << factorial(n) << "}\n";
}
// 有关的函数写在下面
然后编写一个求阶乘函数,代码见█████,运行结果如下:
输入N: 6
n的附乘是 {720}
Press any key to continue
代码如下:
// 从下一行开始复制。
#include <iostream.h>
int factorial(int);
void main(void) {
int n;
cout << "输入N: ";
cin >> n;
cout << "n的附乘是 {" << factorial(n) << "}\n";
}
// 有关的函数写在下面
int factorial(int n) {
int f = 1;
for(int i = 1; i <= n; i++)
f *= i;
return f;
}
// 一直复制到上一行结束。
【Jitor 校验第 2 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。
【第 3 步】编写求杨辉三角项的函数
编写求杨辉三角项的函数,其中调用求阶乘函数,代码见█████
运行结果如下(要求空格、换行等完全相同):
输入N: 6
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
代码如下:
// 从下一行开始复制。
#include <iostream.h>
#include <iomanip.h>
int factorial(int);
int cmn(int, int);
void main(void) {
int n;
cout << "输入N: ";
cin >> n;
for(int i=0;i<=n;i++) {
for(int j=0;j<=i;j++) {
cout<<setw(6)<<cmn(i,j);
}
cout << endl;
}
}
// 有关的函数写在下面
int factorial(int n) {
int f = 1;
for(int i = 1; i <= n; i++)
f *= i;
return f;
}
int cmn(int i, int j) {
return factorial(i) / (factorial(j) * factorial(i - j));
}
// 一直复制到上一行结束。
【Jitor 校验第 3 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。
【第 4 步】编写输出指定数量空格的函数
编写输出指定数量空格的函数,完成杨辉三角的编写,代码见█████
运行结果如下:
输入N: 6
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
代码如下:
// 从下一行开始复制。
#include <iostream.h>
#include <iomanip.h>
int factorial(int);
int cmn(int, int);
void space(int);
void main(void) {
int n;
cout << "输入N: ";
cin >> n;
for(int i=0;i<=n;i++) {
space(n-i);
for(int j=0;j<=i;j++) {
cout<<setw(6)<<cmn(i,j);
}
cout << endl;
}
}
// 有关的函数写在下面
int factorial(int n) {
int f = 1;
for(int i = 1; i <= n; i++)
f *= i;
return f;
}
int cmn(int i, int j) {
return factorial(i) / (factorial(j) * factorial(i - j));
}
void space(int n) {
for(int i = 0; i < n; i++) {
cout << " ";
}
}
// 一直复制到上一行结束。
【Jitor 校验第 4 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。
【第 5 步】实训总结
本次实训通过杨辉三角的例子,学习了函数的嵌套调用。总结如下:
1. 一个函数可以调用另一个函数
2. 一个大型的程序是由许多函数组成的
3.主函数是程序的起点,所有的函数调用都是由主函数发起的
【Jitor 校验第 5 步】我已阅读实训总结 // 送分题。直接点击。
仍有疑问 ? 联系QQ 9429444(陈海云) : 返回首页 |