當前位置:編程學習大全網 - 編程軟體 - c語言編程題目求教---輸入員工姓名工號進行排序和查找

c語言編程題目求教---輸入員工姓名工號進行排序和查找

#include?<stdio.h>

#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();

}

  • 上一篇:寶馬那些車支持app
  • 下一篇:Ai繪畫模型融合記憶
  • copyright 2024編程學習大全網