2.从键盘上输入 15 个数,编程实现:首先对它按从小到大的顺序排序,然后,从键盘 上再输入一个数,用折半查找法找出该数是数组中的第几个元素的值。若该数不在数组 中,则打印出“无此数”。
时间: 2023-06-12 10:05:56 浏览: 98
下面是使用 Python 语言实现的代码:
```python
# 输入15个数
nums = list(map(int, input("请输入15个数,以空格分隔:").split()))
# 对数组进行排序
nums.sort()
# 输入要查找的数
target = int(input("请输入要查找的数:"))
# 初始化左右边界
left, right = 0, len(nums) - 1
# 循环进行折半查找
while left <= right:
mid = (left + right) // 2
if nums[mid] == target:
print("该数在数组中的位置为:", mid + 1)
break
elif nums[mid] < target:
left = mid + 1
else:
right = mid - 1
else:
print("无此数")
```
运行代码后,会先让你输入 15 个数,然后会对这 15 个数进行从小到大的排序。接着让你输入要查找的数,然后使用折半查找法在排好序的数组中查找该数,如果找到了则输出该数在数组中的位置,否则输出“无此数”。
相关问题
从键盘上输入15个数,编程实现:对它按从小到大的顺序排序
好的,你可以直接将这15个数输入给我,我会进行排序的。
排序代码如下(会自动识别输入的15个数):
```python
# 获取输入的15个数(空格分隔)
nums = list(map(int, input('请输入15个要排序的数(空格分隔):').strip().split()))
# 排序
nums.sort()
# 输出排序结果
print('排序后的结果是:', nums)
```
如果你更喜欢自己输入代码,也可以参考下面的代码实现:
```python
# 从键盘上输入15个整数,以空格分隔
nums = input().split(' ')
# 将字符串转化为整数列表
nums = [int(x) for x in nums]
# 对列表进行排序
nums.sort()
# 输出排序后的结果
for num in nums:
print(num, end=' ')
```
以上两种实现方式都可以实现该排序功能,只是略有不同。
从键盘上输入 15 个数,用c语言编程实现:首先对它按从小到大的顺序排序,然后,从键盘 上再输入一个数,用折半查找法找出该数是数组中的第几个元素的值。若该数不在数组 中,则打印出“无此数”。
以下是实现代码:
```c
#include <stdio.h>
#define LENGTH 15
int binary_search(int arr[], int len, int target) {
int left = 0, right = len - 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;
}
void sort(int arr[], int len) {
for (int i = 0; i < len - 1; i++) {
for (int j = i + 1; j < len; j++) {
if (arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
int main() {
int arr[LENGTH];
printf("请输入 %d 个整数:\n", LENGTH);
for (int i = 0; i < LENGTH; i++) {
scanf("%d", &arr[i]);
}
sort(arr, LENGTH);
printf("排序后的结果为:");
for (int i = 0; i < LENGTH; i++) {
printf("%d ", arr[i]);
}
printf("\n请输入一个整数:");
int target;
scanf("%d", &target);
int index = binary_search(arr, LENGTH, target);
if (index == -1) {
printf("无此数\n");
} else {
printf("该数是数组中的第 %d 个元素的值\n", index + 1);
}
return 0;
}
```
输入示例:
```
请输入 15 个整数:
23 11 56 78 34 99 3 7 12 35 45 67 89 21 43
排序后的结果为:3 7 11 12 21 23 34 35 43 45 56 67 78 89 99
请输入一个整数:34
该数是数组中的第 7 个元素的值
```
阅读全文