📄 search.c
字号:
/*顺序查找*/
int seqsearch(int key)
{
int index=0;
while(index<k)
{
if(key==student[index].No)
return index;
index++;
}
return -1;
}
/*折半查找*/
int binarysearch(int key)
{
int i,j;
int temp;
int left;
int right;
int middle;
int flag[Maxsize]; /*存储欲排序结构体下标*/
for(i=0;i<k;i++) /*初始化数组*/
flag[i]=i;
/*按学号升序排序*/
for(i=0;i<k;i++)
for(j=0;j<k;j++)
if(student[flag[i]].No<student[flag[j]].No)
{
temp=flag[j]; /*交换记录*/
flag[j]=flag[i];
flag[i]=temp;
}
left=0;
right=k-1;
while(left<=right)
{
middle=(left+right)/2;
if(key<student[flag[middle]].No)
right=middle-1;
else
if(key>student[flag[middle]].No)
left=middle+1;
else
if(key==student[flag[middle]].No)
return flag[middle];
}
return -1;
}
/*=========================================================================*/
/*模糊查找 */
/*=========================================================================*/
void instring()
{
char string[20];
int x,y;
int i; /*循环变量*/
int t; /*子函数返回值暂存变量*/
int f=0; /*记录查找次数*/
while(!f)
{
clrscr();
gotoxy(30,8);
printf("Illegibility Searching");
for(i=5;i<75;i++)
{
gotoxy(i,10);
printf("%c",196);
}
gotoxy(8,12);
printf("Please give one part of the student's name you want to seach:");
gotoxy(8,14);
printf("For example you can press one part of the name:");
printf("%s",student[0].Name);
gotoxy(8,16);
printf("Press the string:");
gotoxy(wherex()+1,wherey());
scanf("%s",string); /*输入所要查找的字符串*/
clrscr();
gotoxy(25,4);
printf("Illegibility searching result");
for(i=19;i<60;i++)
{
gotoxy(i,5);
printf("%c",003);
}
gotoxy(23,6);
printf("No Name ");
x=wherex();
y=wherey();
printf("Class\n");
for(i=10;i<70;i++)
{
gotoxy(i,7);
printf("%c",196);
gotoxy(i,23);
printf("%c",196);
}
while(1)
{
for(i=0;i<k;i++)
{
t=inde(student[i].Name,string);
if(t==1) /*查找成功,输出数据*/
{
f++;
gotoxy(23,f+8);
printf("%d %s",student[i].No,student[i].Name);
gotoxy(x,y+f+2);
printf("%s",student[i].Class);
}
}
getch();
break;
}
if(f==0)
{
gotoxy(20,15);
printf("Searching failure!"); /*查找失败*/
getch();
continue;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -