c语言输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对 换。写3个函数:①输入10个数;②进行处理;③
时间: 2024-12-19 08:15:13 浏览: 79
在C语言中,我们可以使用三个函数分别完成输入、处理和输出操作。以下是这三个函数的基本结构:
1. **输入10个数的函数** (input_numbers())
```c
#include <stdio.h>
void input_numbers(int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("请输入第 %d 个数:", i+1);
scanf("%d", &arr[i]);
}
}
```
在这个函数里,我们遍历10次,每次询问用户输入一个整数,并存储到数组`arr`中。
2. **进行处理的函数** (swap_min_max(int[], int))
```c
void swap_min_max(int arr[], int size) {
// 寻找最小值和最大值的索引
int min_index = 0;
int max_index = size - 1;
for (int i = 1; i < size - 1; i++) {
if (arr[i] < arr[min_index]) {
min_index = i;
} else if (arr[i] > arr[max_index]) {
max_index = i;
}
}
// 如果第一个元素是最小的,则不需要交换
if (min_index == 0) {
return;
}
// 交换最小值和第一个数
int temp = arr[0];
arr[0] = arr[min_index];
arr[min_index] = temp;
// 同理,如果最后一个元素是最大值,则不需要交换
if (max_index == size - 1) {
return;
}
temp = arr[size - 1];
arr[size - 1] = arr[max_index];
arr[max_index] = temp;
}
```
这个函数首先找到数组中的最小值和最大值的索引,然后根据这两个索引与数组的第一和最后一个位置进行交换。
3. **输出结果的函数** (print_array(int[]))
```c
void print_array(int arr[], int size) {
printf("处理后的数组是:");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
```
最后,调用这三个函数并显示结果:
```c
int main() {
int numbers[10];
input_numbers(numbers, 10);
swap_min_max(numbers, 10);
print_array(numbers, 10);
return 0;
}
```
阅读全文
相关推荐

















