正在加载图片...
靳润昭C语言教程讲义 2001年2月17日 move(n-1, x, z, y); printf(%c->%c\n" x, z) move(n-1, y, x, z) int h. printf( "\input number: \n") scan printf( the step to moving %2d diskes: \n", h) move(h 从程序中可以看出,move函数是一个递归函数,它有四个形参n,x,y,zan表示圆盘数, x,y,z分别表示三根针。move函数的功能是把x上的n个圆盘移动到z上。当n==1时,直 接把x上的圆盘移至z上,输出x-z。如n!=1则分为三步:递归调用move函数,把n-1个 圆盘从x移到y;输出x-z:递归调用move函数,把n-1个圆盘从y移到z。在递归调用过 程中n=n-1,故n的值逐次递减,最后n=1时,终止递归,逐层返回。当n=4时程序运行的 结果为 Input number the step to moving 4 diskes C-a a-b a→C 87数组作为函数参数 数组可以作为函数的参数使用,进行数据传送。数组用作函数参数有两种形式,一种是 第12页靳润昭 C 语言教程讲义 2001 年 2 月 17 日 第12页 { move(n-1,x,z,y); printf("%c-->%c\n",x,z); move(n-1,y,x,z); } } main() { int h; printf("\ninput number:\n"); scanf("%d",&h); printf("the step to moving %2d diskes:\n",h); move(h,'a','b','c'); } 从程序中可以看出,move 函数是一个递归函数,它有四个形参 n,x,y,z。n 表示圆盘数, x,y,z 分别表示三根针。move 函数的功能是把 x 上的 n 个圆盘移动到 z 上。当 n==1 时,直 接把 x 上的圆盘移至 z 上,输出 x→z。如 n!=1 则分为三步:递归调用 move 函数,把 n-1 个 圆盘从 x 移到 y;输出 x→z;递归调用 move 函数,把 n-1 个圆盘从 y 移到 z。在递归调用过 程中 n=n-1,故 n 的值逐次递减,最后 n=1 时,终止递归,逐层返回。当 n=4 时程序运行的 结果为: input number: 4 the step 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 8.7 数组作为函数参数 数组可以作为函数的参数使用,进行数据传送。数组用作函数参数有两种形式,一种是
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有