找出一维数组最大值和最小值并交换
时间: 2023-06-18 12:03:55 浏览: 133
以下是使用 Python 语言实现的示例代码:
```python
arr = [5, 2, 9, 1, 7, 3]
# 找出最大值和最小值的下标
max_idx = 0
min_idx = 0
for i in range(1, len(arr)):
if arr[i] > arr[max_idx]:
max_idx = i
if arr[i] < arr[min_idx]:
min_idx = i
# 交换最大值和最小值的位置
arr[max_idx], arr[min_idx] = arr[min_idx], arr[max_idx]
print("交换后的数组:", arr)
```
输出结果为:
```
交换后的数组: [1, 2, 9, 5, 7, 3]
```
解释:首先遍历数组找到最大值和最小值的下标,然后交换它们的位置,最后输出交换后的数组。
相关问题
在C#中,将一维数组采用泛型数组表示,实现找出一维数组中最大值和最小值,并将数组中最大值与第一个数据交换,最小值与最后一个数据交换
在C#中,你可以使用泛型数组`T[]`来存储任意类型的元素,然后通过LINQ查询找到最大值和最小值。以下是步骤:
1. 首先,创建一个泛型函数,接受一个`T[]`类型的参数,代表一维数组。
```csharp
public static void SwapMinMax<T>(T[] array)
```
2. 使用LINQ的`Min()`和`Max()`方法分别找到数组中的最小值和最大值,同时通过索引来访问对应的元素。
```csharp
var minValue = array.Min();
var maxValue = array.Max();
int minIndex = Array.IndexOf(array, minValue);
int maxIndex = Array.IndexOf(array, maxValue);
```
3. 然后交换这两个值的位置。由于我们已经得到了最大值和最小值的索引,我们可以直接用它们来交换第一个元素和最后一个元素,或者中间两个元素。
```csharp
array[minIndex] = array[maxIndex];
array[maxIndex] = minValue;
```
4. 最后,如果你想确认交换是否成功,可以打印出修改后的数组或返回结果。
```csharp
Console.WriteLine("After swapping:");
foreach (var item in array)
{
Console.Write(item + " ");
}
```
在一维数组中找出最大值和最小值,交换二者位置。一维数组长度设定为10的c语言的编程
在C语言中,可以使用以下步骤在一个长度为10的一维数组中找到最大值和最小值,并将它们的位置互换:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int find_max_min(int arr[], int n) {
int max_val = arr[0], min_val = arr[0];
int max_index = 0, min_index = 0;
for (int i = 1; i < n; i++) {
if (arr[i] > max_val) {
max_val = arr[i];
max_index = i;
} else if (arr[i] < min_val) {
min_val = arr[i];
min_index = i;
}
}
return max_index, min_index;
}
int main() {
int arr[10] = {5, 9, 1, 7, 3, 8, 6, 2, 4, 10};
int n = sizeof(arr) / sizeof(arr[0]);
// 找到最大值和最小值的索引
int max_idx, min_idx = find_max_min(arr, n);
printf("Original array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
// 交换最大值和最小值
swap(&arr[max_idx], &arr[min_idx]);
printf("\nAfter swapping: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在这个程序中,`find_max_min`函数遍历数组找到最大值和最小值的索引,然后`swap`函数用于临时存储并交换这两个值。最后,在主函数`main`中展示了原始数组和交换后的结果。
阅读全文