这个问题要求我们书写几个函数: 1) 输入10个职工的姓名和职工号; 2) 按职工号从小到大排序,姓名也相应改变顺序; 3) 要求输入一个职工号,用折半法找出该职工的姓名,从主函数输入要查找的职工的职工号,输出该职工的姓名。
时间: 2023-06-02 16:07:53 浏览: 55
好的,这个问题是一个编程问题,我可以为你提供解答。
你需要写三个函数:
函数一:输入10个职工的姓名和职工号。
函数二:按职工号从小到大排序,姓名也相应改变顺序。
函数三:使用折半法查找职工姓名。
以下是函数实现的示例代码:
```
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 10
struct Employee {
char name[20];
int id;
};
void inputEmployees(struct Employee employees[]) {
for (int i = 0; i < MAX_SIZE; i++) {
printf("请输入第%d个职工的姓名和职工号:", i+1);
scanf("%s%d", employees[i].name, &employees[i].id);
}
}
void sortEmployees(struct Employee employees[]) {
struct Employee temp;
for (int i = 0; i < MAX_SIZE - 1; i++) {
for (int j = i+1; j < MAX_SIZE; j++) {
if (employees[i].id > employees[j].id) {
temp = employees[i];
employees[i] = employees[j];
employees[j] = temp;
}
}
}
}
char* searchEmployee(struct Employee employees[], int id) {
int low = 0, high = MAX_SIZE - 1, mid;
while (low <= high) {
mid = (low + high) / 2;
if (employees[mid].id == id) {
return employees[mid].name;
} else if (employees[mid].id < id) {
low = mid + 1;
} else {
high = mid - 1;
}
}
return NULL;
}
int main() {
struct Employee employees[MAX_SIZE];
inputEmployees(employees);
sortEmployees(employees);
int searchId;
printf("请输入要查找的职工号:");
scanf("%d", &searchId);
char* name = searchEmployee(employees, searchId);
if (name != NULL) {
printf("查找结果:职工号%d对应的职工姓名为%s\n", searchId, name);
} else {
printf("查找结果:没有找到职工号为%d的职工信息\n", searchId);
}
return 0;
}
```
请注意,这只是示例代码,可能有不足之处,您可以根据自己实际情况进行修改。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)