学完老谭的书的前辈,帮我看看题目的意思
8.15 写几个函数1 输入10个职工的姓名和职工号
2 按职工号由小到大顺序排序,姓名顺序也随之调整
3 要求输入一个职工号,用折半查找发找出该职工的姓名,从主函数输入要查找的职工号,输出该职工的姓名。
前2个功能已经做完了,但是第3个功能是否太容易实现了,因为前面已经对号码和姓名排完序了,只需要几句代码就可以完成第3个功能了。还是我对这道题的理解不够?
请各位前辈解释下这道题目!
付上代码;
#include <stdio.h>
#include <math.h>
#include <string.h>
void main()
{
void shell(char a[10][20],int b[10]);
void find(char a[10][20],int b[10]);
char a[10][20]={{"no10"},{"no9"},{"gfhgno8"},{"no7"},{"nfgho6"},{"no5"},{"nfdsfo4"},{"nfgho3"},{"no2"},{"no1"}};
int b[10]={10,9,8,7,6,5,4,3,2,1};
shell(a,b);
}
void shell(char a[10][20],int b[10])
{
int i,j,t,x;
char k;
for(j=0;j<10;j++)
for(i=0;i<10;i++)
if(b[i]>b[i+1])
{
t=b[i];
b[i]=b[i+1];
b[i+1]=t;
for(x=0;x<20;x++)
{
k=a[i][x];
a[i][x]=a[i+1][x];
a[i+1][x]=k;
}
}
for(i=0;i<10;i++)
{
printf("%s",a[i]);
printf("%5d\n",b[i]);
}
}
因为每次查错都要输入,觉得太麻烦了就直接赋值了。。。
[ 本帖最后由 hywhll888 于 2011-7-11 22:14 编辑 ]