运用C语言实现:可以在键盘中输入一些数字使对其进行排序并除去重复的数字,同时使用二分搜索找到想要搜索的数,给出注释
时间: 2024-02-18 20:05:19 浏览: 17
好的,我可以帮你解答这个问题。以下是实现代码及注释:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 数组的最大长度
// 交换两个数的值
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 冒泡排序
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]) {
swap(&arr[j], &arr[j + 1]);
}
}
}
}
// 二分查找
int binarySearch(int arr[], int n, int target) {
int left = 0, right = n - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
int main() {
int nums[MAX_SIZE]; // 存储输入的数字
int n; // 数组的实际长度
printf("请输入数字的个数:");
scanf("%d", &n);
printf("请输入%d个数字:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
bubbleSort(nums, n); // 对数组进行排序
// 去重
int k = 1; // k 表示当前不重复数字的个数
for (int i = 1; i < n; i++) {
if (nums[i] != nums[i - 1]) {
nums[k++] = nums[i];
}
}
// 输出排序后去重后的数组
printf("排序后去重后的数组为:");
for (int i = 0; i < k; i++) {
printf("%d ", nums[i]);
}
printf("\n");
// 二分查找
int target;
printf("请输入要查找的数字:");
scanf("%d", &target);
int index = binarySearch(nums, k, target);
if (index == -1) {
printf("没有找到该数字!\n");
} else {
printf("该数字在数组中的下标为:%d\n", index);
}
return 0;
}
```
注释已经写在代码中了,如果你还有其他问题,可以继续问我。
相关推荐
![text/plain](https://img-home.csdnimg.cn/images/20210720083646.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)
![](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)