找出含有10个元素一维数组中的最大值和最小值,并互换这两个数的位置
时间: 2023-05-31 20:18:35 浏览: 301
### 回答1:
首先,我们需要遍历这个含有10个元素的一维数组,找出其中的最大值和最小值。可以使用一个循环来实现:
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int max = arr[];
int min = arr[];
for (int i = 1; i < 10; i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
找到最大值和最小值后,我们可以使用一个临时变量来交换它们的位置:
int temp = max;
max = min;
min = temp;
这样,最大值和最小值的位置就互换了。完整的代码如下:
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int max = arr[];
int min = arr[];
for (int i = 1; i < 10; i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
int temp = max;
max = min;
min = temp;
printf("最大值:%d,最小值:%d\n", max, min);
### 回答2:
首先,我们可以通过遍历数组找到最大值和最小值。我们可以定义两个变量来存储当前已经找到的最大值和最小值,然后遍历数组,比较每个元素和当前最大值或最小值的大小关系,更新相应的变量。
在找到最大值和最小值后,我们可以通过交换两个数的位置来实现互换。具体做法是,定义一个临时变量来存储最大值或最小值,然后将最大值或最小值赋值给另一个元素,再将临时变量的值赋给原来的最大值或最小值所在的位置。
下面是具体的代码实现:
```cpp
#include <iostream>
using namespace std;
int main() {
int a[10] = {10, 3, 5, 7, 2, 4, 6, 8, 1, 9};
int max_val = a[0], min_val = a[0];
int max_idx = 0, min_idx = 0;
for (int i = 1; i < 10; i++) {
if (a[i] > max_val) {
max_val = a[i];
max_idx = i;
}
if (a[i] < min_val) {
min_val = a[i];
min_idx = i;
}
}
cout << "Max value: " << max_val << ", at index: " << max_idx << endl;
cout << "Min value: " << min_val << ", at index: " << min_idx << endl;
int temp = a[max_idx];
a[max_idx] = a[min_idx];
a[min_idx] = temp;
cout << "After swap: ";
for (int i = 0; i < 10; i++) {
cout << a[i] << " ";
}
cout << endl;
return 0;
}
```
运行结果为:
```
Max value: 10, at index: 0
Min value: 1, at index: 8
After swap: 1 3 5 7 2 4 6 8 10 9
```
可以看到,最大值和最小值的位置已经互换了。这个方法同样适用于任意长度的一维数组。
### 回答3:
假设给定的一维数组为arr,我们可以使用循环来遍历数组中的每一个元素,同时记录当前的最大值和最小值。
首先,我们可以初始化最大值和最小值,比如将最大值初始化为数组的第一个元素arr[0],将最小值初始化为数组的第一个元素arr[0]。
然后,我们可以使用for循环遍历数组中的每一个元素,比较当前元素与最大值、最小值的大小,并更新最大值和最小值。
最后,我们可以通过交换最大值和最小值的位置,来实现互换这两个数的位置。
具体代码如下:
int main() {
int arr[10] = {5, 9, 3, 7, 2, 8, 6, 4, 1, 0};
int max = arr[0], min = arr[0];
int maxIndex = 0, minIndex = 0;
// 查找最大值和最小值的位置
for (int i = 1; i < 10; i++) {
if (arr[i] > max) {
max = arr[i];
maxIndex = i;
}
if (arr[i] < min) {
min = arr[i];
minIndex = i;
}
}
// 交换最大值和最小值
arr[maxIndex] = min;
arr[minIndex] = max;
// 验证结果
for (int i = 0; i < 10; i++) {
cout << arr[i] << " ";
}
return 0;
}
在上述代码中,我们先初始化最大值和最小值为数组的第一个元素arr[0],然后使用for循环遍历数组中的每一个元素,比较当前元素与最大值、最小值的大小,并更新最大值和最小值。同时,我们还记录最大值和最小值的位置,等到交换位置时使用。
最后,我们通过交换最大值和最小值的位置,来实现互换这两个数的位置,从而得到最终的结果。