源程序:
#include <stdio.h>
#define MaxSize 8
typedef struct
{
int stuno;
char stuname[20];
}TableElem;
TableElem stu[]={{1001,"zhang"},{1009,"wang"},{2005,"sun"},{2008,"liu"},{3001,"zheng"},
{3005,"lai"},{4003,"qin"},{4400,"ren"}};
typedef struct
{
TableElem elem[MaxSize];
int n;
}SqTable;
int searchsqtable(SqTable T,int key) //查找函数
{
T.elem[0].stuno=key;
int i=T.n;
while(T.elem[i].stuno!=key)
i--;
return i;
}
int main()
{
SqTable seq;
for(int i=0;i<MaxSize;i++)
{
seq.elem[i]=stu[i];
}
seq.n=MaxSize;
int kk,mm;
printf("请输入要查找的学号:");
scanf("%d",&kk);
mm=searchsqtable(seq,kk); //调用查找函数
printf("此人在顺序表中的位置是:%d
",mm+1);
printf("%d号的姓名为:%s
",mm+1,seq.elem[mm].stuname);
return 1;
}
运行结果: