用c语言写几个函数: (1)输入 10 个职工号; (2)按职工号从小到大排序: (3) 要求输入一个职工号,用折半法找出来。(用指针实现)
时间: 2023-06-26 07:07:21 浏览: 68
以下是用C语言实现的三个函数:
1. 输入10个职工号的函数:
```c
void inputNumbers(int* arr) {
printf("请输入10个职工号:\n");
for(int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
}
```
2. 按职工号从小到大排序的函数:
```c
void sortNumbers(int* arr) {
int temp;
for(int i = 0; i < 9; i++) {
for(int j = i+1; j < 10; j++) {
if(arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
printf("排序后的职工号为:\n");
for(int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
```
3. 用折半法找出一个职工号的函数:
```c
int searchNumber(int* arr, int target) {
int left = 0, right = 9, mid;
while(left <= right) {
mid = (left + right) / 2;
if(arr[mid] == target) {
return mid;
} else if(arr[mid] > target) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1;
}
```
这三个函数可以放在一起使用,例如:
```c
int main() {
int arr[10];
inputNumbers(arr);
sortNumbers(arr);
int target;
printf("请输入要查找的职工号:\n");
scanf("%d", &target);
int index = searchNumber(arr, target);
if(index == -1) {
printf("没有找到该职工号\n");
} else {
printf("该职工号在数组中的下标为:%d\n", index);
}
return 0;
}
```