交换最小值和最大值,要求用函数
时间: 2023-12-17 19:28:24 浏览: 112
以下是交换最小值和最大值的Python函数实现:
```python
def swap_min_max(arr):
min_num = arr.index(min(arr)) # 找到最小值的下标
max_num = arr.index(max(arr)) # 找到最大值的下标
arr[min_num], arr[max_num] = arr[max_num], arr[min_num] # 交换最小值和最大值
return arr
```
这个函数接受一个数组作为参数,首先找到数组中最小值和最大值的下标,然后交换这两个值。最后返回交换后的数组。
相关问题
交换最小值和最大值c语言
下面是交换最小值和最大值的 C 代码:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int arr[10] = {3, 8, 1, 6, 2, 7, 9, 5, 4, 0};
int n = sizeof(arr) / sizeof(arr[0]);
int max_idx = 0, min_idx = 0;
// 寻找最大值和最小值的下标
for (int i = 1; i < n; i++) {
if (arr[i] > arr[max_idx]) {
max_idx = i;
} else if (arr[i] < arr[min_idx]) {
min_idx = i;
}
}
// 交换最大值和最小值
swap(&arr[max_idx], &arr[min_idx]);
// 输出结果
printf("交换后的数组:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
代码中,我们使用了一个 `swap` 函数来交换两个数字。然后,我们在数组中寻找最大值和最小值的下标,最后调用 `swap` 函数交换这两个数字。
交换最小值和最大值c++
在C++中,你可以使用两个变量分别存储数组的最大值和最小值,然后通过简单的比较操作来交换它们。这里有一个简单的示例,假设你有一个整数数组`arr[]`,长度为`n`:
```cpp
#include <iostream>
// 函数声明,接受一个整数数组的引用和大小作为参数
void swapMinMax(int arr[], int n) {
// 如果数组为空或只有一个元素,无需交换
if (n <= 1)
return;
// 初始化最大值和最小值
int max = arr[0];
int min = arr[0];
// 遍历数组找到最大值和最小值
for (int i = 1; i < n; i++) {
if (arr[i] > max)
max = arr[i];
else if (arr[i] < min)
min = arr[i];
}
// 交换最大值和最小值
int temp = max;
max = min;
min = temp;
// 将找到的新最大值和最小值放回原数组
for (int i = 0; i < n; i++) {
if (arr[i] == max)
arr[i] = min;
else if (arr[i] == min)
arr[i] = max;
}
}
int main() {
int arr[] = {5, 2, 9, 1, 7};
int n = sizeof(arr) / sizeof(arr[0]);
std::cout << "Before swapping: ";
for (int i : arr)
std::cout << i << " ";
swapMinMax(arr, n);
std::cout << "\nAfter swapping: ";
for (int i : arr)
std::cout << i << " ";
return 0;
}
```
在这个例子中,`swapMinMax`函数会找出数组中的最大值和最小值,然后用一个临时变量`temp`进行交换。最后,在主函数中调用这个函数并打印出交换后的结果。
阅读全文
相关推荐
















