求助!二分查找的演示程序图形初始化问题。。。。

最近要交作业,写了二分查找程序,但是运行就有问题,图形不能初始化,请各位高手帮帮忙,
先谢谢了!运行环境是TC2.0。
图形驱动部分程序如下:
/*tu xing qu dong*/
void Init(int a[],int *x)
{
  int i;
  int gd,gm;
  randomize();                      /*随机函数*/
  for(i=0;i<N;i++)
      a=random(100);             
  Sort(a,N);                        /*冒泡排序函数*/
  for(i=0;i<N;i++)
      printf("%-3d",a);            /*put out the data*/
  printf("\n");
  printf("Please in put a number which you want to find:");
  scanf("%d",x);
  detectgraph(&gd,&gm);
  initgraph(&gd,&gm,"c:\\TC20");     
  cleardevice();
}





全部代码如下



/*** er fen cha zhao ***/
#include<graph.h>
#include<stdlib.h>
#define N 15                          /*jie dian shu wei 15*/
void find(int x[],int y,int z);      /*cha zhao guo cheng*/
void Init(int x[],int *n);            /*tu xing chu shi hua*/
void Close();                        /*tu xing guan bi*/
void Put(int x[],int y);              /*shu chu shu zhi*/
void Up(int x);                      /*hua xiang shang jian tou*/
void Down(int x);                    /*hua xiang xia jia dou*/
void Mid(int x);                      /*hua zhong jian jian tou*/
void Clr(int x);                      /*ca chu hua mian shang de yi xie nei rong*/
void Sort(int x[],int n);            /*dui sui ji shu zu pai xu*/


/**zhu han shu**/
void main(void)
{
  int a[N],x;
  Init(a,&x);                        /*x wei yao cha zhao de shu*/
  Put(a,N);
  find(a,x,N);
  Close();
  exit(0);
}


/*hua zhong jian jian tou*/
void Mid(int n)
{    setcolor(6);                /*jian tou wei bai se*/
    line(25+n*40,120,25+n*40,80);
    line(25+n*40,120,25+n*40,110);
    line(25+n*40,120,30+n*40,110);
}

/*hua xiang xia jian tou*/
void Down(int n)
{
    setcolor(6);
    line(25+n*40,120,25+n*40,80);
    line(25+n*40,120,20+n*40,110);
    line(25+n*40,120,30+n*40,110);
}

/*hua xiang shang jian tou*/
void Up(int n)
{
    setcolor(6);
    line(25+n*40,180,25+n*40,220);
    line(25+n*40,180,20+n*40,190);
    line(25+n*40,180,30+n*40,190);
}

/*ca chu nei rong*/
void Clr(int y)
{
    setfillstyle(1,0);      /*1*/
    bar(0,y+50,640,y-50);            /*hua chu yi tiao lan mu,yong jiu xing fu gai*/
}

/*shu chu shu zhi*/
void Put(int a[],int n)
{
    int i;
    char num[5];
    setcolor(6);
    settextstyle(0,0,2);            /*she zhi zi ti da xiao*/
    for(i=0;i<n;i++)
    {
sprintf(num,"%d",a);      /*2*/
outtextxy(20+i*40,150,num);
    }
    settextstyle(0,0,1);
    setcolor(6);
    outtextxy(250,250,"anykey to continue");
    getch();
}

/*jiu ti er fen fa cha zhao*/
void find(int a[],int y,int n)
{
    int low,high,mid,i;
    char str1[5],str2[5];
    sprintf(str1,"%d",y);
    low=0;
    high=n-1;
    setcolor(6);
    settextstyle(0,0,2);
    outtextxy(200,10,"Find");
    outtextxy(330,10,str1);
    while(low<=high)
    {
Clr(250);
Clr(80);
Clr(230);                    /*3*/
mid=(high+low)/2;            /*ji suan zhong jian wei zhi*/
Up(high);
Down(low);
Mid(mid);
if(a[mid]==y)
{
    low=mid+1;                /*gai zuo bian wei zhi*/
    sprintf(str2,"%d",a[mid]);
    outtextxy(250,250,str2);  /*4*/
    outtextxy(300,250,"<");
    outtextxy(350,250,str1);
}
else
{
    high=mid-1;                /*gai you bian wei zhi*/
    sprintf(str2,"%d",a[mid]);
    outtextxy(250,250,str2);  /*4*/
    outtextxy(300,250,">");
    outtextxy(350,250,str1);
}
sleep(2);                    /*5*/
    }
    setcolor(11);
    if(low<=high)                    /*Find it!*/
outtextxy(250,350,"FIND");
    else        /*Can't find it*/
outtextxy(250,350,"NOT FIND IT");
}

/*mao pao pai xu*/
void Sort(int a[],int n)
{
    int i,j,t;
    for(i=0;i<n-1;i++)
      for(j=0;j<=n-1-i;j++)
  if(a[j]>a[j+1])
  {
    t=a[j];
    a[j]=a[j+1];
    a[j+1]=t;
  }                            /*data charge*/
}

/*tu xing qu dong*/
void Init(int a[],int *x)
{
  int i;
  int gd,gm;
  randomize();                      /*sui ji han shu*/
  for(i=0;i<N;i++)
      a=random(100);              /*sheng cheng 100 yi nei de shu*/
  Sort(a,N);                        /*pai xu*/
  for(i=0;i<N;i++)
      printf("%-3d",a);            /*put out the data*/
  printf("\n");
  printf("Please in put a num which you want to find:");
  scanf("%d",x);
  detectgraph(&gd,&gm);
  initgraph(&gd,&gm,"c:\\TC20");      /*tc suo zai mu lu lu jing*/
  cleardevice();
}

void Close()                          /*tu xing qu dong jie su*/
{
  getch();
  closegraph();                      /*Close the system*/
}
最后编辑wizard_0_0_0_0 最后编辑于 2008-04-28 17:18:55