#include <stdio.h> #define MAX 10 #define LEN 4 typedef struct { int id; char name[MAX]; }STU;//语句1 typedef struct { STU * elem; int length; }SSTable; STU * search(STU * ptr,int size,int id);//语句2 //语句2应该在语句1之前因为语句2使用了STU. int search_seq(SSTable st,int id); int main(void) { STU stu[LEN]={{0,""},{1,"sss"},{2,"aaa"},{3,"ddd"}}; int k=3; SSTable st={stu,LEN}; /*if(search(stu,3,2)!= NULL) printf("%d,%s\n",search(stu,3,2)->id,search(stu,3,2)->name); else printf("no record!\n");*/ /* if(search_seq(st,k)!= NULL) printf("%d,%s\n",search_seq(st,k)->id,search_seq(st,k)->name); else printf("no record!\n");*/ if(search_seq(st,k)==0) printf("no record!\n"); else printf("%d,%s\n",stu[search_seq(st,k)].id,stu[search_seq(st,k)].name); return 0; } STU * search(STU * ptr,int size,int id) { for(int i=0;i<size;i++) { if(ptr->id==id) return ptr; ptr++; if(i==size-1) return NULL; } } int search_seq(SSTable st,int id) { /* for(int i=(st.length-1);i>=0;i--) { if(st.elem->id==id) return st.elem; st.elem++; if(i==0) return NULL; } */ st.elem[0].id=id; for(int i=st.length-1;id!=st.elem[i].id;--i) continue ; return i; }