2.输入 10 个整数,将其中最小的数与第一个数对换,把最 大的数与最后一个数对换。写 3 个函数; (1)输入 10 个数 (2)进行处理 (3)输出 10 个数 用C语言写出这个代码
时间: 2024-12-15 10:28:34 浏览: 6
在C语言中,我们可以创建三个函数来实现这个需求:`input_numbers()`用于接收10个整数,`swap_min_max()`负责交换最小值和第一个数以及最大值和最后一个数,最后的`display_numbers()`用于输出这10个数。以下是代码示例:
```c
#include <stdio.h>
// 函数1:输入10个整数
void input_numbers(int arr[], int n) {
printf("请输入10个整数:\n");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
}
// 函数2:处理数组,交换最小值与第一个数,最大值与最后一个数
void swap_min_max(int arr[], int n) {
if (n >= 2) { // 检查数组长度是否大于等于2
int min_idx = 0, max_idx = n - 1; // 分别初始化最小值和最大值的索引
// 查找最小值和最大值的索引
for (int i = 1; i < n - 1; i++) {
if (arr[i] < arr[min_idx]) {
min_idx = i;
} else if (arr[i] > arr[max_idx]) {
max_idx = i;
}
}
// 交换最小值和第一个数
if (min_idx != 0) {
int temp = arr[0];
arr[0] = arr[min_idx];
arr[min_idx] = temp;
}
// 交换最大值和最后一个数
if (max_idx != n - 1];
arr[n - 1] = arr[max_idx];
arr[max_idx] = temp;
}
}
}
// 函数3:输出10个数
void display_numbers(int arr[], int n) {
printf("处理后的数组为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int numbers[10];
input_numbers(numbers, 10);
swap_min_max(numbers, 10);
display_numbers(numbers, 10);
return 0;
}
```
阅读全文