输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换,使用C语言和指针
时间: 2023-12-04 14:09:20 浏览: 213
好的,以下是代码实现:
```
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int arr[10];
int *p = arr;
int i;
printf("请输入10个整数:\n");
for (i = 0; i < 10; i++) {
scanf("%d", p + i);
}
int *max = p, *min = p;
for (i = 1; i < 10; i++) {
if (*(p + i) > *max) {
max = p + i;
}
if (*(p + i) < *min) {
min = p + i;
}
}
swap(p, min);
swap(max, p + 9);
printf("交换后的结果为:\n");
for (i = 0; i < 10; i++) {
printf("%d ", *(p + i));
}
printf("\n");
return 0;
}
```
代码解释:
首先定义了一个整型数组 `arr` 和一个指向 `arr` 的指针 `p`,用于存储输入的 10 个整数。
使用 `scanf()` 函数从用户输入中读取 10 个整数,并存储到 `arr` 数组中。
接着,使用指针 `p` 扫描数组 `arr`,找到其中的最大值和最小值,分别用指针 `max` 和 `min` 指向最大值和最小值。
使用 `swap()` 函数将最小值与数组的第一个元素交换,将最大值与数组的最后一个元素交换。
最后使用指针 `p` 扫描数组 `arr`,打印出交换后的结果。
阅读全文