#include #define N 7 struct meibo { int number; char *name; }; static struct meibo students[N] = { { 0, "" }, { 1, "Akemi" }, { 2, "Hanako" }, { 4, "Tarou" }, { 5, "Shirou" }, { 9, "Rumiko" }, { 999, "" } }; int main(int argc, char **argv) { int key; int i=0,j=N; int p; sscanf(*++argv,"%d",&key); while (i <= j) { p = (i+j)/2; if (students[p].number <= key ) { i = p+1; } else { j = p-1; } } if (students[j].number == key ) { printf("%d %s\n",students[j].number,students[j].name); } else { printf("No such data!\n"); } }