用指針完成,输人10 个整数,将其中最小的数与第一个数对换,最大的数与最后个数对换。
时间: 2023-06-11 19:08:08 浏览: 52
以下是用指针完成的代码:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int arr[10];
int *p, *max, *min;
printf("请输入10个整数:\n");
for (p = arr; p < arr + 10; p++) {
scanf("%d", p);
}
max = min = arr;
for (p = arr + 1; p < arr + 10; p++) {
if (*p > *max) {
max = p;
}
if (*p < *min) {
min = p;
}
}
swap(min, arr);
swap(max, arr + 9);
printf("交换后的数组为:\n");
for (p = arr; p < arr + 10; p++) {
printf("%d ", *p);
}
printf("\n");
return 0;
}
```
首先,我们定义了一个 `swap` 函数,用于交换两个整数的值。它接受两个指向整数的指针,将它们指向的值交换。
然后,在 `main` 函数中,我们定义了一个大小为 10 的整数数组 `arr`,以及三个指向整数的指针 `p`、`max`、`min`。接着,我们使用循环逐个输入 10 个整数。
接下来,我们使用循环遍历整个数组,找到其中最大值和最小值的指针。注意,在比较大小时,我们使用了指针所指向的值 `*p`。
最后,我们调用 `swap` 函数,将最小值与数组第一个元素交换,将最大值与数组最后一个元素交换。最后,再次使用循环输出交换后的数组。