在一个数组中存入10个整数,将其中最小的数与第一个数对换,再把最大的数与最后一个数对换。写三个函数:(1)输入10个数;(2)进行处理;(3)输出10个数。所有函数的参数均用指针
时间: 2023-11-22 12:55:51 浏览: 95
以下是实现该功能的代码:
```c
#include <stdio.h>
void input(int *arr);
void process(int *arr);
void output(int *arr);
int main() {
int arr[10];
input(arr);
process(arr);
output(arr);
return 0;
}
void input(int *arr) {
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", arr+i);
}
}
void process(int *arr) {
int min_idx = 0, max_idx = 0;
for (int i = 1; i < 10; i++) {
if (*(arr+i) < *(arr+min_idx)) {
min_idx = i;
}
if (*(arr+i) > *(arr+max_idx)) {
max_idx = i;
}
}
int temp = *(arr+min_idx);
*(arr+min_idx) = *arr;
*arr = temp;
temp = *(arr+max_idx);
*(arr+max_idx) = *(arr+9);
*(arr+9) = temp;
}
void output(int *arr) {
printf("处理后的数组为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", *(arr+i));
}
}
```
使用指针作为参数,可以直接在函数内部修改数组的值,避免了数组传参时的拷贝操作,提高了效率。
阅读全文