以下是一种实现方法:

#include <stdio.h>

void findMaxThree(int arr[], int len, int* max1, int* max2, int* max3) {
    *max1 = *max2 = *max3 = arr[0];
    for (int i = 1; i < len; i++) {
        if (arr[i] > *max1) {
            *max3 = *max2;
            *max2 = *max1;
            *max1 = arr[i];
        } else if (arr[i] > *max2) {
            *max3 = *max2;
            *max2 = arr[i];
        } else if (arr[i] > *max3) {
            *max3 = arr[i];
        }
    }
}

int main() {
    int arr[] = {3, 1, 6, 4, 8, 2, 5, 7};
    int max1, max2, max3;
    findMaxThree(arr, sizeof(arr)/sizeof(arr[0]), &max1, &max2, &max3);
    printf("The maximum three numbers are: %d, %d, %d\n", max1, max2, max3);
    return 0;
}

该函数接受一个整数数组、数组长度以及三个指向整数的指针作为参数,返回数组中最大的三个数。函数遍历数组,用三个变量 max1max2max3 记录当前找到的最大的三个数,如果遍历到的数比当前最大的数还大,就更新三个变量的值。最终,函数返回三个变量的值,即为数组中最大的三个数。在 main() 函数中,我们调用 findMaxThree() 函数,并输出结果

C语言选出一组数组中最大的三个数

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

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