关于c语言写汉罗塔

qq_41894015 2019-04-16 12:01:18
#include"stdio.h" int h=0; void move(char a,char c,int n) { printf("第%d步:将%d号盘从%c上移至%c\n",++h,n,a,c); } void fuct(int n,char a,char b,char c) { if(n==1) move(a,c,1); else { fuct(n-1,a,c,b); move(a,n,c); fuct(n-1,b,a,c); } } int main() { int n; printf("3 个塔座为x、y、z,圆盘最初在x 座,借助y 座移到z 座。请输入圆盘数:"); scanf("%d",&n); fuct(n,'x','y','z'); } 请问为什么输出结果会是这样子?
...全文
116 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
落叶※繁华 2019-04-17
  • 打赏
  • 举报
回复
#include"stdio.h" int h=0; void move(char a,char c,int n) { printf("第%d步:将%d号盘从%c上移至%c\n",++h,n,a,c); } void fuct(int n,char a,char b,char c) { if(n==1) move(a,c,1); else { fuct(n-1,a,c,b); move(a,b,n);//修改 fuct(n-1,c,b,a);//修改 } } int main() { int n; printf("3 个塔座为x、y、z,圆盘最初在x 座,借助y 座移到z 座。请输入圆盘数:"); scanf("%d",&n); fuct(n,'x','y','z'); } 两个地方写错了已经用//修改标注
636f6c696e 2019-04-16
  • 打赏
  • 举报
回复
fuct内调用move函数入参写错了吧 move(a,n,c); -->move(a,c,n);

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧