| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 630 人关注过本帖
标题:汉诺塔小小的错误
只看楼主 加入收藏
levononice
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-3-21
收藏
 问题点数:0 回复次数:3 
汉诺塔小小的错误

#include <iostream.h>
#include <stdio.h>
void hanoi(int n,char x,char y,char z);
void move(char x,int n,char y);
void main()
{
int num;
char A,B,C;
cout<<"Please enter the number of disks num:";
cin>>num;
hanoi(num,A,B,C);
}
void hanoi(int n,char x,char y,char z)
{
if(n==1)
move(x,1,z);
else{
hanoi(n-1,x,z,y);
move(x,n,z);
hanoi(n-1,y,x,z);
}
}
void move(char x,int n,char y)
{

cout <<"move\t"<<n<<"from\t"<<x<< "to"<< y<<endl;
}
程序没有错误
但运行的时候却有乱码
最后一行是不是写法不正确 ?

搜索更多相关主题的帖子: 汉诺塔 小小的 
2006-03-21 14:59
YoungSun
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-3-25
收藏
得分:0 

把Hanoi 函数的参数该成Hanoi(n,'A','B','C')就OK 了

2006-03-25 14:37
qzt040613
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:63
专家分:0
注 册:2006-3-15
收藏
得分:0 
move函数是一个出栈入栈的问题,应该把相应的程序写入,而不是用语言叙述啊!

天地无极,我本逍遥!
2006-03-28 12:53
flyblue
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-3-28
收藏
得分:0 

可以不用move函数,在原程序稍做改动,如下:
#include <iostream.h>
#include <stdio.h>
void hanoi(int n,char x,char y,char z);
void main()
{
int n;

cout<<"Please enter the number of disks num:"<<endl;
cin>>n;
hanoi(n,'A','B','C');
}
void hanoi(int n,char x,char y,char z)
{
if(n==1)
cout<<x<<"\tmoveto\t"<<z<<endl;
else{
hanoi(n-1,x,z,y);
cout<<x<<"\tmoveto\t"<<z<<endl;
hanoi(n-1,y,x,z);
}
}

2006-03-28 23:26
快速回复:汉诺塔小小的错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047769 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved