c语言数组最大数和最后一个数交换,最小数和第一个交换?
时间: 2024-03-19 07:46:25 浏览: 69
可以通过以下步骤实现:
1. 遍历整个数组,找到最大值和最小值的索引位置;
2. 将最大值和数组的最后一个元素交换;
3. 将最小值和数组的第一个元素交换。
下面是相应的 C 代码实现:
```c
#include <stdio.h>
int main() {
int arr[] = {5, 3, 7, 2, 9, 1, 8, 4, 6};
int n = sizeof(arr) / sizeof(arr[0]);
int max_index = 0;
int min_index = 0;
// 找到最大值和最小值的索引位置
for (int i = 1; i < n; i++) {
if (arr[i] > arr[max_index]) {
max_index = i;
}
if (arr[i] < arr[min_index]) {
min_index = i;
}
}
// 交换最大值和最后一个元素
int temp = arr[max_index];
arr[max_index] = arr[n - 1];
arr[n - 1] = temp;
// 交换最小值和第一个元素
temp = arr[min_index];
arr[min_index] = arr[0];
arr[0] = temp;
// 输出结果
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
6 3 7 2 5 1 8 4 9
```
阅读全文