用c语言并且使用指针输入 10 个整数,将其中最小的数与第一个数互换,把最大的数与最后一 个数互换。写三个函数分别实现:(1)输入 10 个数;(2)实现具体互换处理, 并通过指针型参数的间接运算返回最大值和最小值;(3)输出10 个数。
时间: 2024-12-16 22:15:05 浏览: 10
在C语言中,我们可以使用指针来操作数组元素并完成题目所述的任务。以下是三个函数的示例:
1. 函数用于输入10个整数到数组中:
```c
void input_numbers(int* arr, int size) {
for (int i = 0; i < size; i++) {
printf("请输入第%d个数:", i+1);
scanf("%d", arr + i); // 使用指针加i获取数组元素地址
}
}
```
2. 函数通过指针处理数组,交换最小值与第一个数,以及最大值与最后一个数,并返回它们的值:
```c
typedef struct {
int min;
int max;
} SwapResult;
SwapResult swap_and_returnMinMax(int* arr, int size) {
int min_val = *arr; // 初始化最小值为第一个数
int max_val = *arr; // 初始化最大值为第一个数
// 遍历查找最小值和最大值
for (int i = 1; i < size; i++) {
if (arr[i] < min_val) {
min_val = arr[i];
}
if (arr[i] > max_val) {
max_val = arr[i];
}
}
// 交换过程
int temp = arr[0]; // 临时保存第一个数
arr[0] = min_val; // 第一个数变为最小值
arr[size - 1] = max_val; // 最后一个数变为最大值
arr[size - 1] = temp; // 最大值再放回最后位置
SwapResult result = {min_val, max_val};
return result;
}
// 函数返回两个整数值,而不是直接修改原数组
```
3. 函数用于输出10个数:
```c
void print_array(int* arr, int size) {
for (int i = 0; i < size; i++) {
printf("第%d个数:%d\n", i+1, arr[i]);
}
}
```
阅读全文