c语言基础教程 - 第五章函数和存储类免费版(7)

2019-06-02 17:09

分析算法如下:

该题目使用递归调用的方法编程。将n个盘子从A处移到C处可分为如下三个步骤:

(I)将A处的n-1个盘子借助C处移到B处。 (2)把A处剩下的一个盘子移到C处。

(3)再将B处的n-1个盘子借助于A处移到C处。 这样完成了n个盘子的移动。

分析上述的三步操作可以发现,第1步和第3步所采用的方法是一样的,都是将n-1个盘子从某一处移到另一处,只是移动的位置不同。因此,可将上述的三步骤化简为如下两步骤: (1)将n一1个盘子从一处移到另一处。 (2)将一个盘子从一处移动另一处。

把这两个步操作分别用两个函数来描述。第一步操作用move_n()函数来实现,第二步操作用二ove_1()函数来实现。 move_n<)函数有4个参数,分别为n,a,b.c,表示\将n个盘子从A处借助B处移到C处\ 该函数具体定义如下:

void move_n(n,a,b,c) ant n; char a,b,c; {

if (n==1) move 1(a ,c); else {

move n (n一l,a.c,b); mnve_ 1(a,c); move_n(n一1,b,a ,c); } }

move_n()函数有2个参数,一个是from,另一个是to,表示将i个盘子从fom处处。该函数具体定义如下: int m

void move_1(from,to) char from,to: {

if (m%8==0) printf (\);

printf(\);

m++; }

该程序主函数内容如下

void move_ 1(). move_ n(), main() { int d;

printf (\); scant(\);

printf (\) move一n(d,'n',B',C.); printf (\); 执行该程序输出如下信息: Input the number of diskes:3 \ A-C A-B C-B A-C B-A A-C 再运行一次该程序:

input the number of dishes:4 'C'he sreps to moving 4 diskes:

;

A-B A-C B-C A-B C-A C-B A-B A-C B-C B-A C-A B-C A-B A-C B-C 再运行一次该程序:

Input the number of diskes:5 The steps to moving 5 diskes: A-C A-B C-B A-C B-A B-C A-C A-B C-B C-A B-A C-B A-C A-B G-B A-C B-A B-C A-G B-A C-B C-A B-A B-G A-C A-B C-B A-C B-A B-C A-C 说明:

(l.)该程序由3个函数组成:main(),MOVE_1()和move_ n ( ).主函数main ()中调用move_n()函数,在xnove_n()函数中又调用move_1( )函数,由于move_ 1( )函数和move_n()函数在定义时使用了void来说明它们是无返回值的,因此,如果main ( )在前,move _ n ( )和move _ 1( )函数在后,则调用后两个函数之前要说明,该程序将说明放在文件头,即主函数的前面。 (2) move_n()函数采用了递归调用方法,即在move_n(n,\)函数体中两次调用move _ n(N一1,一)函数。该问题采用递归调用方法编程是很简洁明了的。用其他编程将是十分复杂的。

(3)本例中三次运行这个程序,给出了输入分别为3个盘子、4个盘和5个盘子的三组输出数据,表明了三种移动的过程。

5.4.1 标识符的作用城规则 标识符的作用域规则描述如下:

标识符只能在说明它或定义它的函数体或分程序内是可见的,而在该函数体或分程序外则是不可见的。 现将这段描述说明如下:

(1)大多数的标识符对它说明或对它定义是一回事,只有少数的标识符对它说明或对它定义是两回事,例如,外部变量和函数。 (2)标识符包含了变量、函数、语句标号、符号常量等名字,凡是用标识符规则定义的各种单词都属于标识符。

(3)可见的指的是可以进行存取、访间,可见时对它的改变是有效的,不可见的是指不能对它进行存取、访间及其他操作。可见的与存在的是两个不同概念:可见的是指在其作用域内,对它可以操作;存在的是指其寿命,仍存放在内存内,没有被释放。可见的一定是存在的,不存在一定不可见,但是存在的不一定都可见,有的标识符它虽然存在,但不可见。后面在存储类中会详细讲到,内部静态变量有时不可见了,但它仍然存在。


c语言基础教程 - 第五章函数和存储类免费版(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:马河小学绩效方案文档

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: