下面是一个使用指针法实现的函数,返回数组的最小值,并通过指针返回数组的最大值和平均值。

#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* maxdouble* average,我们可以在函数中修改这两个变量的值,并在函数结束后保持这个修改。


原文地址: https://www.cveoy.top/t/topic/pkRI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录