C语言、编写一个程序,包括主函数和函数。要求: (1)主函数中输入10个无序的整数。(10分) (2)用冒泡排序法从大到小排序。(10分) (3) 要求输入一个整数,用折半查找法找出该数。若存在,在主函数中输出其所处的位置,否则,指出此数不在数组中。(10分)
时间: 2024-02-21 13:58:34 浏览: 110
好的,以下是一个满足你需求的 C 语言程序,请仔细阅读:
```c
#include <stdio.h>
// 冒泡排序函数
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] < arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 折半查找函数
int binarySearch(int arr[], int n, int target) {
int left = 0, right = n - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
// 主函数
int main() {
// 输入10个无序的整数
int arr[10];
printf("请输入10个无序的整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
// 冒泡排序,从大到小排序
bubbleSort(arr, 10);
// 输出排序后的结果
printf("排序后的结果为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 输入要查找的整数
int target;
printf("请输入要查找的整数:\n");
scanf("%d", &target);
// 折半查找
int index = binarySearch(arr, 10, target);
if (index == -1) {
printf("此数不在数组中!\n");
} else {
printf("该数的下标为:%d\n", index);
}
return 0;
}
```
程序中,主函数中首先输入了 10 个无序的整数,然后调用冒泡排序函数将它们从大到小排序,接着输入要查找的整数,调用折半查找函数查找该数在数组中的位置,并输出结果。
希望这个程序能够满足你的需求,如果还有其他问题,请随时向我提问。
阅读全文