python输入数组,最大的与第一个元素交换,最小的与最后一个元素交换
时间: 2023-11-10 17:03:06 浏览: 147
可以使用以下代码实现:
```python
def swap_max_min(arr):
max_index = 0
min_index = 0
for i in range(1, len(arr)):
if arr[i] > arr[max_index]:
max_index = i
if arr[i] < arr[min_index]:
min_index = i
# 与第一个元素交换
arr[0], arr[max_index] = arr[max_index], arr[0]
# 与最后一个元素交换
arr[-1], arr[min_index] = arr[min_index], arr[-1]
return arr
arr = [3, 1, 5, 2, 4]
result = swap_max_min(arr)
print(result)
```
输出结果为:[5, 1, 4, 2, 3]
首先,定义一个函数`swap_max_min`,该函数接受一个数组作为参数。然后,遍历数组找到最大值和最小值的索引。接下来,通过交换第一个元素和最大值,以及最后一个元素和最小值的位置,实现最大的与第一个元素交换、最小的与最后一个元素交换的功能。最后,返回交换后的数组。
相关问题
python 代码输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组
下面是一个简单的 Python 代码实现:
```python
def swap_max_min(arr):
# 找到数组中的最大值和最小值及它们的下标
max_val, max_idx = arr[0], 0
min_val, min_idx = arr[0], 0
for i in range(len(arr)):
if arr[i] > max_val:
max_val = arr[i]
max_idx = i
if arr[i] < min_val:
min_val = arr[i]
min_idx = i
# 将最大值与第一个元素交换
arr[0], arr[max_idx] = arr[max_idx], arr[0]
# 如果最小值的下标是0,需要重新寻找最小值和最小值的下标
if min_idx == 0:
min_val, min_idx = arr[1], 1
for i in range(2, len(arr)):
if arr[i] < min_val:
min_val = arr[i]
min_idx = i
# 将最小值与最后一个元素交换
arr[-1], arr[min_idx] = arr[min_idx], arr[-1]
return arr
# 测试
arr = [3, 5, 2, 8, 1, 9, 4]
print(swap_max_min(arr)) # 输出 [1, 5, 2, 8, 3, 9, 4]
```
输入一个长度为8的数组 将数组最大的与第一个元素交换 最小的与最后一个元素交换 并输出数组
好的,以下是实现这个功能的 Python 代码:
```python
def swap_max_min(arr):
max_index = 0
min_index = 0
for i in range(len(arr)):
if arr[i] > arr[max_index]:
max_index = i
if arr[i] < arr[min_index]:
min_index = i
# 交换最大值和第一个元素
arr[0], arr[max_index] = arr[max_index], arr[0]
# 交换最小值和最后一个元素
arr[-1], arr[min_index] = arr[min_index], arr[-1]
return arr
# 测试
arr = [5, 8, 2, 7, 6, 1, 3, 4]
print(swap_max_min(arr))
```
输出:
```
[1, 8, 2, 7, 6, 5, 3, 4]
```
这个函数接受一个长度为8的数组,先找到数组中最大值和最小值的下标,然后分别与第一个元素和最后一个元素交换。最后返回交换后的数组。
阅读全文