首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

C语言经典算法之汉诺塔:诺汉塔画图版

C语言经典算法之汉诺塔:诺汉塔画图版

/*这是我老师编的程序 Andy*/
#include <conio.h>
#include <string.h>
char dd[10][20],space[20];
int a[11],b[11],c[11];
init()
{
         inti,j;
         for(i=0;i<20-1;i++)space=' ';
         space='\0';
         for(i=0;i<10;i++)
         {  for(j=0;j<20-1;j++)dd[j]=' ';
            dd[j]='\0';
            for(j=9-i;j<=9+i;j++)dd[j]='a'+i;
         }
         for(i=0;i<10;i++)a=i,b=-1,c=-1;
         a[10]=2,b[10]=25,c[10]=50;
         for(i=0;i<10;i++)
         {        gotoxy(a[10],10+i);
                   cprintf("%s",dd);
         }
}
move(int *s,int *d)
{   int i,j;
           for(i=0;s==-1&&i<10;i++);
           gotoxy(s[10],10+i);
           cprintf("%s",space);
           for(j=0;d[j]==-1&&j<10;j++);
           j--;
           gotoxy(d[10],10+j);
           cprintf("%s",dd[s]);
           d[j]=s;s=-1;
           getche();
}
void hanoi(int n,int *s,int *w,int *d)
{        inti;
         if(n==1)move(s,d);
         else
         {        hanoi(n-1,s,d,w);
                   move(s,d);
                   hanoi(n-1,w,s,d);
         }
}
main()
{
clrscr();
init();
getche();
hanoi(10,a,b,c);
getche();
}
返回列表