C语言指针法查找数组最小值并返回最大值和平均值
下面是一个使用指针法实现的函数,返回数组的最小值,并通过指针返回数组的最大值和平均值。
#include <stdio.h>
int findMin(const int* arr, int length, int* max, double* average) {
int min = *arr;
*max = *arr;
double sum = 0;
for (int i = 0; i < length; i++) {
if (*arr < min) {
min = *arr;
}
if (*arr > *max) {
*max = *arr;
}
sum += *arr;
arr++;
}
*average = sum / length;
return min;
}
int main() {
int arr[] = {5, 2, 8, 1, 9};
int length = sizeof(arr) / sizeof(arr[0]);
int max;
double average;
int min = findMin(arr, length, &max, &average);
printf('最小值:%d\n', min);
printf('最大值:%d\n', max);
printf('平均值:%f\n', average);
return 0;
}
这个程序的输出为:
最小值:1
最大值:9
平均值:5.000000
在 findMin 函数中,我们使用 const int* arr 作为参数,表示传入的数组是一个常量指针,避免了对数组内容的修改。在循环中,我们使用 *arr 来获取当前指针指向的数组元素,然后通过 arr++ 来移动指针到下一个元素。通过这种方式,我们实现了对数组的遍历。通过传入指针参数 int* max 和 double* average,我们可以在函数中修改这两个变量的值,并在函数结束后保持这个修改。
原文地址: https://www.cveoy.top/t/topic/pkRI 著作权归作者所有。请勿转载和采集!