不知有什么好的方法,最容易想到的就是这个了。 // 找第二大的值.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; void find_max_2(const int* data,const int& n) { if (n<2) { cout<<"err!"<<endl; return; } int max=data[1],max2=data[0]; if (data[0]>data[1]) { max=data[0]; max2=data[1]; } for (int i=2;i<n;i++) { if (data[i]>max2 && data[i]<max) { max2=data[i]; } if (data[i]>max) { max2=max; max=data[i]; } } cout<<"max2: "<<max2<<endl; } int _tmain(int argc, _TCHAR* argv[]) { int arry[]={2,66,4,3,6,8}; find_max_2(arry,sizeof(arry)/sizeof(*arry)); return 0; } 我有时就是晕啊,最简单的也想不起来。