输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。用C语言编写
时间: 2023-11-02 22:18:15 浏览: 113
以下是用 C 语言编写的代码:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int n;
printf("请输入数组长度:");
scanf("%d", &n);
int arr[n];
printf("请输入数组元素:");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
int max_idx = 0, min_idx = 0;
for (int i = 1; i < n; i++) {
if (arr[i] > arr[max_idx]) {
max_idx = i;
}
if (arr[i] < arr[min_idx]) {
min_idx = i;
}
}
swap(&arr[0], &arr[max_idx]);
swap(&arr[n-1], &arr[min_idx]);
printf("交换后的数组为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
代码思路:
1. 用户输入数组长度 `n` 和数组元素 `arr`。
2. 找到数组元素中最大的元素下标 `max_idx` 和最小的元素下标 `min_idx`。
3. 交换第一个元素和最大元素,交换最后一个元素和最小元素。
4. 输出交换后的数组元素。
注意事项:
1. 由于数组长度为变量,需要使用动态数组。
2. 代码中使用了指针交换两个元素的值,需要理解指针的基本用法。