编写一个程序,在数组中输入10个整数,找到他们的最大最小值,分别将它们与数组中第一个元素和最后一个元素交换位置,输出交换位置前后的数组,用C语言编写
时间: 2024-12-16 17:32:20 浏览: 41
在C语言中,我们可以创建一个简单的函数来完成这个任务。首先,我们需要输入10个整数并存储到数组中,然后计算最大值和最小值,接着交换这两个值与其对应位置的元素。以下是完整的示例代码:
```c
#include <stdio.h>
// 函数声明,用于找出数组的最大值、最小值,并交换相应位置的元素
void findAndSwap(int arr[], int size);
int main() {
int numbers[10];
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &numbers[i]);
}
// 调用函数处理数组
findAndSwap(numbers, sizeof(numbers) / sizeof(numbers[0]));
printf("交换前的数组:");
for (int i = 0; i < 10; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
printf("交换后的数组:");
for (int i = 0; i < 10; i++) {
printf("%d ", numbers[i]); // 因为数组元素已经交换过了,所以直接输出
}
printf("\n");
return 0;
}
// 找出最大值和最小值,并交换相应位置的元素
void findAndSwap(int arr[], int size) {
int min = arr[0], max = arr[0]; // 假设第一个元素既是最大也是最小
for (int i = 1; i < size; i++) {
if (arr[i] > max) {
max = arr[i];
} else if (arr[i] < min) {
min = arr[i];
}
}
// 交换位置
int temp = arr[0];
arr[0] = max;
arr[size - 1] = temp;
temp = arr[size - 1];
arr[size - 1] = min;
arr[0] = temp;
}
```
在这个程序中,`findAndSwap` 函数首先初始化两个变量 `min` 和 `max` 为数组的第一个元素,然后遍历整个数组来寻找真正的最大值和最小值。最后,它会用这两个值替换数组的第一和最后一个元素。
阅读全文