C语言,汉诺塔问题

来源:百度知道 编辑:UC知道 时间:2024/09/24 04:07:28
void main()
{
void han(char x,char y,char z,int n);
int i;
char a='A',b='B',c='C';
scanf("%d",&i);
han(a,b,c,i);
}
void han(char x,char y,char z,int n);
{ void move(char m,char n);
if(n==1)
move(x,z);
else
{
han(x,z,y,n-1);
move(x,z);
han(y,x,z,n-1);
}
}
void move(char m,char n)
{
printf("%c-->%c\n",x,y);
}
请问:错在哪?

发现两个错误
1
void han(char x,char y,char z,int n);
函数定义的句末没有分号
2
void move(char m,char n)
{
printf("%c-->%c\n",x,y);
}
你的x、y是在han()中定义的,在move中只定义了m、n
应该是printf("%c-->%c\n",m,n);
改正之后运行了一下,基本上是对的(我只看了前3阶)。

我也在学c语言,一起努力吧。

函数声明好像不是声明在main函数里面吧,是声明在main函数前面的!