输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求用3个函数实现,分别为输入10个数、进行处理、输出10个数。要求使用指针的方法进行处理。
时间: 2023-12-04 11:53:10 浏览: 66
下面是实现该功能的代码,使用了三个函数,分别为input、process和output。
```c
#include <stdio.h>
void input(int *a, int n);
void process(int *a, int n);
void output(int *a, int n);
int main() {
int a[10];
input(a, 10);
process(a, 10);
output(a, 10);
return 0;
}
void input(int *a, int n) {
printf("请输入%d个整数:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", a + i);
}
}
void process(int *a, int n) {
int *max = a, *min = a;
for (int i = 1; i < n; i++) {
if (*(a + i) > *max) {
max = a + i;
}
if (*(a + i) < *min) {
min = a + i;
}
}
int temp = *a;
*a = *min;
*min = temp;
if (max == a) {
max = min;
}
temp = *(a + n - 1);
*(a + n - 1) = *max;
*max = temp;
}
void output(int *a, int n) {
printf("处理后的数组为:\n");
for (int i = 0; i < n; i++) {
printf("%d ", *(a + i));
}
printf("\n");
}
```
具体来说,input函数通过指针参数接收数组a和数组长度n,使用scanf逐个读入数组元素。process函数接收数组a和数组长度n,使用两个指针变量max和min分别指向数组中最大和最小的元素,然后交换最大元素和最后一个元素,交换最小元素和第一个元素(如果最大元素恰好是第一个元素,那么需要让max指向最小元素)。output函数接收数组a和数组长度n,使用printf逐个输出数组元素。在main函数中,先声明一个长度为10的整型数组a,然后按顺序调用input、process和output函数,最后返回0表示程序正常结束。
阅读全文