2
回答
c语言 递归 局部变量的问题
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

#include<stdio.h>
void printdisk(int n,char x, char y){
printf("%d %c------------>%c\n",n,x,y);
}
void hanoi(int n,char a,char b,char c ){

if(n == 1){
printdisk(n,a,c);
}else{

hanoi(n-1,a,c,b);
       // printf("%d  ",n);
printdisk(n,a,c);
    hanoi(n-1,b,a,c);
}
}
int main(){
setvbuf(stdout,NULL,_IONBF,0);
printf("Input n:\n");
int n;
scanf("%d",&n);
hanoi(n,'A','B','C');
return 0;
}

为啥第一次输出A------------>C而不是A------------>B

<无标签>
举报
guoyongchen
发帖于5年前 2回/192阅
共有2个答案 最后回答: 5年前
#include<stdio.h>
void printdisk(int n,char x, char y){
printf("%d %c------------>%c\n",n,x,y);
}
void hanoi(int n,char a,char b,char c ){

if(n == 1){
printdisk(n,a,c);
}else{

hanoi(n-1,a,c,b);
       // printf("%d  ",n);
printdisk(n,a,c);
    hanoi(n-1,b,a,c);
}
}
int main(){
setvbuf(stdout,NULL,_IONBF,0);
printf("Input n:\n");
int n;
scanf("%d",&n);
hanoi(n,'A','B','C');
return 0;
}
#include<stdio.h>
void printdisk(int n,char x, char y){
     printf("%d %c------------>%c\n",n,x,y);
}
void hanoi(int n,char a,char b,char c ){

     if(n == 1){
	  printdisk(n,a,c);
     }else{

	  hanoi(n-1,a,c,b);
	  // printf("%d  ",n);
	  printdisk(n,a,c);
	  hanoi(n-1,b,a,c);
     }
}
int main(){
     setvbuf(stdout,NULL,_IONBF,0);
     printf("Input n:\n");
     int n;
     scanf("%d",&n);
     hanoi(n,'A','B','C');
     return 0;
}
顶部