###### 问题遇到的现象和发生背景
我是一名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;
}
###### 运行结果及报错内容
###### 我的解答思路和尝试过的方法
个人认为是move函数里打印一步的问题,但是和网上找到的这一步对比一下好像又差不多
参考的代码:printf("%2d:%3d # %c-%c\n", k, n, getone, putone);
对照了其他地方也没有发现问题
###### 我想要达到的结果
希望打印出盘子的拿取和放置的位置