输入10个整数,将其中最小的数与第一个数互换,把最大的数与最后一个数互换。写三个函数分别实现:(1)输入10个数:(2)实现具体互换处理, 并通过指针型参数的间接运算返回最大值和最小值:(3)输出10个数。 C语言
时间: 2024-12-14 14:19:24 浏览: 25
c代码-输入三个整数x,y,z,请把这三个数由小到大输出。
5星 · 资源好评率100%
在C语言中,我们可以这样设计三个函数来完成这个任务:
1. 函数声明和实现输入10个整数的数组:
```c
#include <stdio.h>
// 函数声明,接收指向整数数组的指针,数组长度作为第二个参数
void input_numbers(int* arr, int size);
```
2. 函数实现具体的互换处理,并通过指针间接获取最小值和最大值:
```c
int find_min_max(int* start, int* end) {
int min = *start;
int max = *start; // 假设第一个元素既是最大又是最小
for (int i = start + 1; i < end; i++) {
if (*i < min) {
min = *i;
}
if (*i > max) {
max = *i;
}
}
return max, min;
}
void swap_and_return_min_max(int* arr, int* min, int* max) {
// 找到最小值和最大值
*min = *arr;
*max = *arr;
// 将最小值与第一个数交换
int temp = *arr;
*arr = *min;
*min = temp;
// 将最大值与最后一个数交换
temp = *arr;
arr[size - 1] = *max;
*max = temp;
}
```
3. 输出10个数的函数:
```c
void print_array(int* arr, int size) {
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
```
现在你可以这样调用这三个函数:
```c
int main() {
int numbers[10];
input_numbers(numbers, 10);
int min, max;
swap_and_return_min_max(numbers, &min, &max); // 交换并保存结果
print_array(numbers, 10); // 输出数组
printf("Minimum value: %d\n", min);
printf("Maximum value: %d\n", max);
return 0;
}
```
阅读全文