#include <stdio.h>
void max_min(int *arr, int n, int *max, int *min);
int main() {
int n;
scanf("%d", &n);
int arr[n];
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
int max, min;
max_min(arr, n, &max, &min);
printf("max = %d\n", max);
printf("min = %d\n", min);
return 0;
}
void max_min(int *arr, int n, int *max, int *min) {
*max = *min = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > *max) {
*max = arr[i];
}
if (arr[i] < *min) {
*min = arr[i];
}
}
}
在这个程序中,我们首先读入n的值,然后动态创建一个长度为n的整数数组。接下来,我们使用循环从标准输入中读入n个整数,并将它们存储在数组中。然后,我们调用max_min()函数,传递数组、数组长度和两个指向max和min变量的指针。在max_min()函数中,我们使用指针来接收这两个变量的地址,并在函数内部修改它们的值以找到最大值和最小值。最后,我们在主函数中输出最大值和最小值。
void max_min(int *arr, int n, int *max, int *min);
:这是max_min
函数的声明。这个函数接收四个参数:一个指向整型数组的指针(arr
),一个整型数表示数组的长度(n
),以及两个指向整型的指针用于保存最大值(max
)和最小值(min
)。
智能2311