#include <iostream> #include <iterator> using namespace std; /* 函数功能:查找数组中第二大数(要注意判断条件),该函数返回第二大数在数组中的下标 */ int GetSecondMaxInArray(int arr[], int length) { if(1 == length) return -1; //表示无第二大值 else if(2 == length) return ((*arr > *(arr+1)) ? 0 : 1); else { int max, secondMax; if(*arr > *(arr+1)) { max = 0; secondMax = 1; } else { max = 1; secondMax = 0; } //进行循环比较 for(int i=3; i<length; i++) { if(arr[i] > arr[max]) { secondMax = max; max = i; } else if(arr[i] > arr[secondMax]) secondMax = i; } return secondMax; } } int main() { int arr[10]; for(int i=0; i<10; i++) arr[i] = i + 1; int secondMax = GetSecondMaxInArray(arr, 10); if(secondMax != -1) cout<<"second max element is: "<<arr[secondMax]<<endl; } http://fayaa.com/tiku/view/199/#ans574