输入10个整数,用一个数组存储,然后调用具有指针参数的函数,实现将其中最大的数和最后一个数交换,将其中最小的和第一个数交换。
时间: 2024-03-26 17:40:30 浏览: 50
好的,下面是实现该功能的代码:
```
#include <stdio.h>
void swap(int *x, int *y) {
int temp = *x;
*x = *y;
*y = temp;
}
void exchange(int *arr, int n) {
int max = 0, min = 0;
for (int i = 1; i < n; i++) {
if (arr[i] > arr[max]) {
max = i;
}
if (arr[i] < arr[min]) {
min = i;
}
}
swap(&arr[max], &arr[n-1]);
swap(&arr[min], &arr[0]);
}
int main() {
int arr[10];
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
exchange(arr, 10);
printf("处理后的数组为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
代码的思路是先遍历数组找到最大值和最小值的索引,然后通过指针参数将最大值和最小值与所需交换的元素交换即可。
阅读全文