
wizard_0_0_0_0
-
相册
- 组别:新手上路
- 性别:
- 来自:
- 积分:1
- 帖子:1
- 注册:
2008-04-28
|
求助!二分查找的演示程序图形初始化问题。。。。
最近要交作业,写了二分查找程序,但是运行就有问题,图形不能初始化,请各位高手帮帮忙, 先谢谢了!运行环境是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
|