用指针编程,输入10个整数存入一维数组中,将其中最大数与最后一个数交换,最小数与第一个数交换,C语言解答如下
时间: 2024-11-22 19:47:14 浏览: 24
在C语言中,我们可以利用指针操作数组元素。首先,我们需要创建一个一维数组,然后通过两个指针分别找到最大值和最小值,最后交换它们的位置。以下是详细的C语言代码示例:
```c
#include <stdio.h>
#define ARRAY_SIZE 10
int main() {
int numbers[ARRAY_SIZE];
int *max_ptr, *min_ptr; // 创建指针变量用于查找最大值和最小值
int i;
// 输入10个整数到数组
for (i = 0; i < ARRAY_SIZE; i++) {
printf("Enter number %d: ", i + 1);
scanf("%d", &numbers[i]);
}
// 找到最大值和最小值的索引
max_ptr = &numbers[0];
min_ptr = &numbers[0];
for (i = 1; i < ARRAY_SIZE; i++) {
if (numbers[i] > *max_ptr) {
max_ptr = &numbers[i]; // 更新最大值指针
}
if (numbers[i] < *min_ptr) {
min_ptr = &numbers[i]; // 更新最小值指针
}
}
// 交换最大值和最后一个数
int temp = numbers[ARRAY_SIZE - 1];
numbers[ARRAY_SIZE - 1] = *max_ptr;
*max_ptr = temp;
// 交换最小值和第一个数
temp = numbers[0];
numbers[0] = *min_ptr;
*min_ptr = temp;
// 输出修改后的数组
printf("\nArray after swapping:\n");
for (i = 0; i < ARRAY_SIZE; i++) {
printf("%d ", numbers[i]);
}
return 0;
}
```
阅读全文