C语言查找数组最大值和次大值:算法实现与代码详解
#include <stdio.h>
void FindMax(int a[], int n, int *pmax1, int *pmax2) { *pmax1 = a[1]; // 初始化最大值为数组第一个元素 *pmax2 = a[2]; // 初始化次大值为数组第二个元素
// 遍历数组,更新最大值和次大值
for (int i = 3; i <= n; i++) {
if (a[i] > *pmax1) {
*pmax2 = *pmax1;
*pmax1 = a[i];
} else if (a[i] > *pmax2) {
*pmax2 = a[i];
}
}
}
int main() { int a[50], n, i; int max1, max2; scanf('%d', &n); for (i = 1; i <= n; i++) scanf('%d', &a[i]); FindMax(a, n, &max1, &max2); printf('%d %d ', max1, max2);
return 0;
}
原文地址: https://www.cveoy.top/t/topic/eDsO 著作权归作者所有。请勿转载和采集!