写几个函数:(1)输入10个职工号;(2)按职工号从小到大排序;(3)要求输入一个职工号,用折半法找出来。(用指针实现)只用C语言,不用C++
时间: 2024-01-09 22:04:32 浏览: 67
以下是用 C 语言实现的代码,包括输入、排序和折半查找:
```c
#include <stdio.h>
#define MAX 10
void input(int *arr) {
printf("请输入%d个职工号:\n", MAX);
for (int i = 0; i < MAX; i++) {
scanf("%d", &arr[i]);
}
}
void sort(int *arr) {
for (int i = 0; i < MAX - 1; i++) {
for (int j = i + 1; j < MAX; j++) {
if (arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
int search(int *arr, int key) {
int low = 0, high = MAX - 1;
while (low <= high) {
int mid = (low + high) / 2;
if (arr[mid] == key) {
return mid;
} else if (arr[mid] > key) {
high = mid - 1;
} else {
low = mid + 1;
}
}
return -1;
}
int main() {
int arr[MAX];
input(arr);
sort(arr);
printf("排序结果:");
for (int i = 0; i < MAX; i++) {
printf("%d ", arr[i]);
}
printf("\n");
int key;
printf("请输入要查找的职工号:\n");
scanf("%d", &key);
int index = search(arr, key);
if (index == -1) {
printf("未找到职工号%d\n", key);
} else {
printf("职工号%d在数组的第%d个位置\n", key, index + 1);
}
return 0;
}
```
在这个程序中,我们使用了 `input` 函数来输入 10 个职工号,使用 `sort` 函数来排序,使用 `search` 函数来折半查找指定职工号。注意,在 `search` 函数中,我们使用了指针来访问数组中的元素。最后,在 `main` 函数中,我们调用这三个函数,并输出结果。
阅读全文