从键盘上输入10个整数存放到一维数组中,将其中最小的数与第一个数对换,最大的数与最后一个数对换。要求进行数据交换的处理过程编写成一个函数,函数中对数据的处理用指针方法实现。
时间: 2023-12-04 10:59:30 浏览: 204
1.给出一个整数数组,求其中任意两个元素之差的最大值。
5星 · 资源好评率100%
下面是一个示例代码,实现了将最小值与第一个数交换,最大值与最后一个数交换的功能:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void exchange(int *arr, int len) {
int min_index = 0, max_index = len - 1;
for (int i = 1; i < len; i++) {
if (arr[i] < arr[min_index]) {
min_index = i;
}
if (arr[i] > arr[max_index]) {
max_index = i;
}
}
swap(&arr[0], &arr[min_index]);
swap(&arr[len - 1], &arr[max_index]);
}
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;
}
```
在 `exchange` 函数中,我们先找到数组中最小值和最大值的下标,然后分别与第一个数和最后一个数进行交换。交换操作通过 `swap` 函数实现,该函数接受两个指针参数,将它们所指向的值进行交换。
阅读全文