以下是一种可能的实现方法:

#include <stdio.h>

#define N 10  // 数组大小

int main() {
    int nums[N] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};  // 测试数组
    int best[3] = {0};  // 前三个最好的数,初始化为0
    int i, j;

    // 依次遍历数组中的每个数
    for (i = 0; i < N; i++) {
        // 如果当前数比前三个最好的数中最小的数还要小,则跳过
        if (nums[i] < best[2])
            continue;
        // 将当前数插入前三个最好的数中
        for (j = 0; j < 3; j++) {
            if (nums[i] > best[j]) {
                // 将前面的数向后移一位
                if (j == 1)
                    best[2] = best[1];
                if (j == 0)
                    best[2] = best[1], best[1] = best[0];
                // 插入当前数
                best[j] = nums[i];
                break;
            }
        }
    }

    // 输出前三个最好的数
    printf('Best numbers: %d %d %d\n', best[0], best[1], best[2]);

    return 0;
}

输出:

Best numbers: 9 6 5
C语言:找出数组中最大的三个数

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

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