输入N个整数存于一维数组a中,先找出最小的位置,将最小值与a[N-1]交换
时间: 2024-03-19 13:43:48 浏览: 29
好的,您的问题是如何在一维数组中找出最小值的位置并与最后一个元素交换。下面是对应的 C 代码实现:
```c
#include <stdio.h>
int main() {
const int N = 5;
int a[N] = {3, 1, 4, 2, 5};
// 找出最小值的位置
int min_pos = 0;
for (int i = 1; i < N; ++i) {
if (a[i] < a[min_pos]) {
min_pos = i;
}
}
// 交换最小值与最后一个元素
int temp = a[min_pos];
a[min_pos] = a[N-1];
a[N-1] = temp;
// 输出交换后的结果
for (int i = 0; i < N; ++i) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
这段代码的执行结果是:
```
5 1 4 2 3
```
这里我们假设数组长度为 5,元素分别为 {3, 1, 4, 2, 5}。首先我们需要找到最小值的位置,这里我们使用一个变量 `min_pos` 来记录。我们从第二个元素开始遍历,如果当前元素比 `a[min_pos]` 还要小,就更新 `min_pos` 的值为当前位置。遍历完成后,`min_pos` 存储的就是最小值的位置。
接下来,我们使用一个临时变量 `temp` 保存最小值,然后交换最小值与最后一个元素。最后,我们输出交换后的结果。