输入10个整数,将其中最小的数与第一个数对象,最大的数与最后一个数对换。写三个子函数,分别实现:输入10个整数,进行数据对换处理, 输出10个数。要求,所有的函数参数均用指针
时间: 2024-09-28 15:05:19 浏览: 26
为了实现这个功能,我们可以创建三个子函数,每个函数接受指向整数数组的指针,并完成相应的操作:
1. 函数一:接收整数数组并获取最小值与第一个数对换
```c
void swapMinWithFirst(int* arr, int size) {
if (size > 1) {
int min = *arr;
for (int i = 1; i < size; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
arr[0] = min;
arr[size - 1] = *arr;
arr[size - 1] = min; // 再次交换最大值回原位置
}
}
```
2. 函数二:接收整数数组并获取最大值与最后一个数对换
```c
void swapMaxWithLast(int* arr, int size) {
if (size > 1) {
int max = *arr;
for (int i = 1; i < size; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
arr[size - 1] = max;
arr[0] = *arr;
arr[0] = max; // 再次交换最小值回原位置
}
}
```
3. 主函数:接收整数数组、调用两个辅助函数并输出结果
```c
void processArrayAndOutput(int* arr, int size) {
printf("Original array: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
swapMinWithFirst(arr, size);
printf("After swapping min with first: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
swapMaxWithLast(arr, size);
printf("After swapping max with last: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
```
阅读全文