码迷,mamicode.com
首页 > 编程语言 > 详细

汉诺塔的C语言实现

时间:2015-05-31 00:09:54      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

完整代码如下:

/*
 * this file is the implementation of hanoi game
 * file name: hanoi.c
 * author: John Woods
 * date: 2015/05/30
 * statement: anyone can use this file for any purpose
 */
#include <stdio.h>
#include <stdlib.h>

//function declarations
void hanoi(int n, char x, char y, char z);
void move(int n, char x, char y);

//program entrance
int main(void) {
	char c;
	int n = 0; //the height of hanoi
	printf("please input the height of hanoi:");
	while(!scanf("%d", &n)) {
		while((c=getchar())!=‘\n‘ || c!=EOF);
		printf("bad input! try again:");
	}
	hanoi(n, ‘x‘, ‘y‘, ‘z‘);
	return 0;
}


//function implementations
void hanoi(int n, char x, char y, char z) {
	if(1 == n) {
		move(1, x, z);
	} else {
		hanoi(n-1, x, z, y);
		move(n, x, z);
		hanoi(n-1, y, x, z);
	}
}

void move(int n, char x, char z) {
	printf("move disk %d from %c to %c\n", n, x ,z);
}

代码未经过严格测试,有bug请告知,谢谢!

汉诺塔的C语言实现

标签:

原文地址:http://my.oschina.net/lovewxm/blog/422750

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!