鱼C论坛

 找回密码
 立即注册
查看: 4620|回复: 13

菜鸟一只,被一个程序搞懵了,求讲解

[复制链接]
发表于 2013-5-3 14:05:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一个河内塔的代码,写完之后总有一个错误,自己检查不出来,求大神讲解
#include <stdio.h>
void hanoi(int n,char A,char B,char C)
{
        if(n==1)
        {
                printf(" Move sheet %d from %c to %c\n",n,A,C);
                hanoi(n-1,B,A,C);
        }
}
int main()
{
        int n;
        printf("请输入盘数:\n");
        scanf("%d",&n);
        hanoi(n,'A','B','C'\n);
        return 0;
}

:dizzy:
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-3 14:10:17 | 显示全部楼层
C语言好像不支持函数自己调用自己
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-5-3 14:23:27 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-3 14:44:02 | 显示全部楼层
我空间里有范例!可以看看!!希望对你有帮助!
http://bbs.fishc.com/home.php?mo ... do=blog&id=1632
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-3 14:46:30 | 显示全部楼层
hanoi(n,'A','B','C'\n);  
不知道为为什么这里要就一个\n???
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-3 14:47:08 | 显示全部楼层
去除hanoi(n,'A','B','C'); 的\n

  1. #include <stdio.h>
  2. void hanoi(int n,char A,char B,char C)
  3. {
  4.     if(n==1)
  5.     {
  6.         printf(" Move sheet %d from %c to %c\n",n,A,C);
  7.         hanoi(n-1,B,A,C);
  8.     }
  9. }
  10. int main()
  11. {
  12.     int n;
  13.     printf("请输入盘数:\n");
  14.     scanf("%d",&n);
  15.     hanoi(n,'A','B','C');
  16.     return 0;
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-3 14:47:59 | 显示全部楼层
void hanoi(int n,char A,char B,char C)
{
汉诺塔
汉诺塔(9张)if(n= =1)
{
printf("Move disk %d from %c to %c\n",n,A,C);
}
else
{
hanoi(n-1,A,C,B);
printf("Move disk %d from %c to %c\n",n,A,C);
hanoi(n-1,B,A,C);
}
}
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-3 14:52:15 | 显示全部楼层
本帖最后由 Kinich_Ahau 于 2013-5-3 14:59 编辑

hanoi函数里面只考虑了,n == 1时的情况,在输入其他时,程序就会直接退出!!不会打印任何东西!!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-3 15:34:27 | 显示全部楼层
调用函数用了\n,这个是多余的,所以会导致出错
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-5-3 16:21:36 | 显示全部楼层
感谢楼上各位前辈帮助,谢谢你们
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-3 22:49:14 | 显示全部楼层
我只是路过打酱油的。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-4 16:27:20 | 显示全部楼层
/yhh/zhh/zuotj/ 发表于 2013-5-3 14:10
C语言好像不支持函数自己调用自己

明显是递归...
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-4 22:00:59 | 显示全部楼层
hanoi(n,'A','B','C'\n);
把\n去掉!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-4 23:06:36 | 显示全部楼层
强烈支持楼主ing……
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-29 21:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表