求助!汉诺塔
红色字体是问题#include<stdio.h>
/*
汉诺塔问题 ;原来a上有n个盘子将之放到另一个柱子上,一直都是小上大下,可以使用三个柱子。需要打印移动次数和流程
a b c
*/
void hanoi(int n,char a,char b,char c);
void print(char x,char y);//打印流程
int count=1;//纪录次数
int main()
{
int num;
printf("Please enter the number of plate:\n");
scanf("%d",&num);
hanoi(num,'a','b','c'); 这一步加单引号是什么意思
return 0;
}
void hanoi(int n,char a,char b,char c) //这里代表将a柱子上的盘子借助b柱子移动到c柱子
{
if(n==1)
{
print(a,c); //如果是一个盘子直接将a柱子上的盘子移动到c
}
else
{
hanoi(n-1,a,c,b);//将a柱子上n-1个盘子借助c柱子,移动到b柱子
print(a,c); //再直接将a柱子上的最后一个盘子移动到c
hanoi(n-1,b,a,c); //然后将b柱子上的n-1个盘子借助a移动到c
}
}
void print(char x,char y)
{
printf("第%d次移动:%c to %c\n",count++,x,y);
}
void hanoi(int n,char a,char b,char c);
hanoi(num,'a','b','c');
平常我们先定义变量类型和调用参数
这里为了节省代码,将三个调用参数('a','b','c')直接调入函数 hanoi Uair梦云 发表于 2021-4-25 18:19
void hanoi(int n,char a,char b,char c);
hanoi(num,'a','b','c');
平常我们先定义变量类型和调用参数
...
谢谢{:5_109:} Uair梦云 发表于 2021-4-25 18:19
void hanoi(int n,char a,char b,char c);
hanoi(num,'a','b','c');
平常我们先定义变量类型和调用参数
...
请问如果不用这个单引号应该怎么写呢,还是不太懂这个调用参数的意思 本帖最后由 Uair梦云 于 2021-5-1 11:59 编辑
单引号是传入函数的参数,如果不用单引号,那就设置三个字符串变量,类型也可以是浮点等
总之可以改成:
char a='A',b='B',c='C';//这里的内容就随便改了
hanoi(num,a,b,c)
或者:
char u[]='第一个盘子',t[]='第二个盘子',s[]='第三个盘子'//u[]字符串,如果编译器不显示中文就换英语
hanoi(num,u,t,s)//变量名为u,t,s那么这里也用u,t,s
void hanoi(int n,char a,char b,char c) //这里的a,b,c是形参,即使上面变量名改成u,t,s这里也不用改
页:
[1]