静态查找表

xiaoxiao2021-02-28  86

/*静态查找表*/ #include<stdio.h> #define Maxsize 100 typedef int KeyType; typedef struct { KeyType key; /*关键字*/ int number; /*学号*/ char name[7]; /*姓名*/ char sex[2]; /*性别*/ }TableElem; typedef struct { TableElem elem[Maxsize]; int n; /*最后一个数据元素的下标*/ }SqTable; void Create(SqTable *st) { int i; printf("请输入学生信息\n"); for(i=1;i<=3;i++) { printf("No %d:",i); scanf("%d%d%s%s",&st->elem[i].key, &st->elem[i].number,st->elem[i].name,st->elem[i].sex); } st->n=i; } int Search(SqTable *st,KeyType key) { int i; st->elem[0].key=key;/*设置岗哨*/ i=st->n; /*设置比较位置初值*/ while(st->elem[i].key!=key) i--; /*未找到时,修改比较位置继续查找。*/ return i; } Get(SqTable *st,int x) { int i; i=Search(st,x); if(i==0) printf("查找失败!\n"); else { printf("输出学生信息:"); printf("%d,%d,%s,%s\n",st->elem[i].key, st->elem[i].number,st->elem[i].name,st->elem[i].sex); } } main() { int key; SqTable st; Create(&st); printf("查找key所在位置的学生信息:"); scanf("%d",&key); Get(&st,key); }

编译效果

转载请注明原文地址: https://www.6miu.com/read-85468.html

最新回复(0)