C语言:找出数组中最大的三个数
以下是一种可能的实现方法:
#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
原文地址: https://www.cveoy.top/t/topic/owyh 著作权归作者所有。请勿转载和采集!