在作为函数参数的时候,为什么n--传递值无效。
#include<stdio.h>void hanoi(int n,char a,char b,char c);
void main(void)
{
int n;
char a='A',b='B',c='C';
puts("请输入汉诺塔的层数:");
scanf("%d",&n);
hanoi(n,a,b,c);
}
void hanoi(int n,char a,char b,char c)
{
if(1==n)
{
printf("%c-->%c\n",a,c);
}
else
{
hanoi(n-1,a,c,b);
printf("%c-->%c\n",a,c);
hanoi(n-1,b,a,c);
}
}
如代码,如题目所问。
还有关于汉诺塔的问题,if(1==n)不是表示它只有当层数n为1的时候才能动用吗?为什么下面的else内,又多了一个printf的打印?我清楚它们的功能,也自己推演过,知道大概原理,只求一个更好的理解方式,如果没有,请忽视这个问题。谢谢。 汉诺塔 移动的3个步骤
页:
[1]