给定一个数组, 里面是一些数字, 请只用一个for循环, 找出其中第二大的数字.
C实现
#include <stdio.h>
int main(int argc, const char * argv[]) {
// insert code here...
int array[] = {49, 3, 65, 97, 76, 13, 27, 49};
int elementCounts = ((int)(sizeof(array)))/((int)(sizeof(array[0])));
if (elementCounts < 2) {
perror("数组中元素个数不足, 不合需求.\n");
} else {
int maximum = array[0] > array[1] ? array[0] : array[1];
int secondLargestNumber = array[0] <= array[1] ? array[0] : array[1];
for (int i = 2; i < elementCounts; i ++) {
if (maximum < array[i]) {
maximum = array[i];
} else if (array[i] > secondLargestNumber) {
secondLargestNumber = array[i];
}
}
printf("第二大的数为%d\n", secondLargestNumber);
}
return 0;
}
运行结果:
第二大的数为76