Silverleng 2022-01-23 11:20 采纳率: 100%
浏览 18
已结题

自己写的汉诺塔模型,输出错误

 ###### 问题遇到的现象和发生背景
我是一名C语言的初学者,学到递归的时候想写一个汉诺塔模型,输出是总是出现我没有定义的东西,请问有人可以帮忙看看吗?

 ###### 问题相关代码,请勿粘贴截图

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

void hanoi1(int n, char A, char B, char C)
{
    
    if (n == 1)
        move(1, A, C);
    else
    {
        hanoi1(n - 1, A, C, B);
        move(n, A, B);
        hanoi1(n - 1, B, A, C);
    }
}
move(int num, char A, char B)
{
    static int k = 1;
    printf("第%d步 : 盘子编号:%d %c ->%c\n", k, num, A, B);
    k++;
    if (k % 3 == 0)
        printf("\n");
}
int main()
{
    int n;
    printf("盘子个数:");
    scanf("%d", &n);
    printf("\n");
    hanoi1(n, "A", "B", "C");
    return 0;
}

 ###### 运行结果及报错内容

img

 ###### 我的解答思路和尝试过的方法
个人认为是move函数里打印一步的问题,但是和网上找到的这一步对比一下好像又差不多
参考的代码:printf("%2d:%3d # %c-%c\n", k, n, getone, putone);
对照了其他地方也没有发现问题

 ###### 我想要达到的结果
希望打印出盘子的拿取和放置的位置

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-01-24 09:42
    关注

    改动处见注释,供参考:

    #define _CRT_SECURE_NO_WARNINGS 1
    #include<stdio.h>
    void Move(int num, char A, char B)  //修改 move()
    {
        static int k = 1;
        printf("第%d步 : 盘子编号:%d %c ->%c\n", k, num, A, B);
        k++;
        if (k % 3 == 0)
            printf("\n");
    }
    void hanoi1(int n, char A, char B, char C)  
    {
        if (n == 1)
            Move(1, A, C);          //修改
        else
        {
            hanoi1(n - 1, A, C, B);
            Move(n, A, B);          //修改
            hanoi1(n - 1, B, A, C);
        }
    }
    int main()
    {
        int n;
        printf("盘子个数:");
        scanf("%d", &n);
        printf("\n");
        hanoi1(n, 'A', 'B', 'C');  //hanoi1(n, "A", "B", "C");  修改
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月1日
  • 已采纳回答 1月24日
  • 创建了问题 1月23日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度