c语言先定义函数的汉诺塔 先定义函数求,然后在主程序中( 三 )


所以这里的hanoi函数就有了执行的内容:printf
下面以3个盘子为例进行模拟计算机的执行过程:
1、hanoi(3,A,B,C) , 开始了这步,进入第一层函数,计算机在函数中会进行自我的再次调用(第7行代码)
2、(第7行):hanoi(2,A,C,B) , 于是这又是一个新的hanoi函数,这里我把它成为第二层函数
同样执行到第7行 , 卡住了,再次一次自我的调用
3、(进入第三层函数):hanoi(1,A,B,C),这里的第三层n=1,所以在第四行就显示出了"A-C" , 至此,第三层函数结束 , 回到调用他的第二层函数
4、在第二层当中,继续第8行的内容,所以显示出"A-B",继续运行,到第9行 , 开始了有一次自我调用
5、把她称为贰号第三层函数吧 。。。hanoi(1,B,A,C),和第3步类似,这一层函数显示出了"B-C",然后结束函数,返回调用它的第二层函数
6、第二层函数执行完毕,返回调用它的第一层函数
7、第一层函数中执行到第8行,显示出"A-C",然后执行第9行:hanoi(2,B,A,C)
............
如果看到了这里理清楚了关系就会懂啦 , 接下来还有一半,如果都写下来就太复杂了- 。-
你所说的空函数是指没有返回值,但是这里利用的是电脑调用函数的那种关系来解决的问题 , 比如上面的3步,会自动返回到第二层函数并继续
还可以这样理解汉诺塔,汉诺塔其实是将复杂的问题简单化,
先不管他有多少个盘子从A到C,我只把它视作3步
就像上面那样找个例子,反复的按照代码模拟计算机运行,过个五次六次,就会懂啦
关于c语言先定义函数的汉诺塔和先定义函数求,然后在主程序中的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读