#include?<stdlib.h>
#include?<string.h>
#define?EMPCNT?10
struct?employee
{
int?id;
char?name[16];
};
void?sort(?struct?employee?*e?)
{
int?i,j;
struct?employee?temp;
for(?i=0;?i<EMPCNT;?i++?)
{
for(?j=i+1;j<EMPCNT;j++?)
{
if?(?e[j].id?<?e[i].id?)
{
/*?swap*/
temp?=?e[i];
e[i]?=?e[j];
e[j]?=?temp;
}
}
}
}
int?search(?struct?employee?*e,?int?id?)
{
int?low,?high,?mid;
low?=?0;?
high?=?EMPCNT?-?1;
while(?low?<=?high?)
{
mid?=?(?low+high?)?/?2;
if?(?id?<?e[mid].id?)
high?=?mid?-?1;
else?if?(?id?>?e[mid].id?)
low?=?mid?+?1;
else
return?mid;
}
return?-1;
}
void?main()
{
struct?employee?e[EMPCNT];
int?i,?id=0,?m=-1;
for(?i=0;?i<EMPCNT;?i++?)
{
printf(?"輸入第?%d?員工的員工號,姓名:",?i+1?);
scanf(?"%d?%s",?&e[i].id,?e[i].name?);
fflush(?stdin?);
}
sort(?e?);
for(?i=0;?i<EMPCNT;?i++?)
printf(?"%d?%s\n",?e[i].id,?e[i].name?);
printf("要查找的員工號:"?);
scanf(?"%d",?&id?);
fflush(?stdin?);
m?=?search(?e,?id?);
if?(?m?<?0?)
printf(?"%d?未找到\n",?id?);
else
printf(?"%d?%s\n",?e[m].id,?e[m].name?);
getchar();
}