#include <iostream>
using namespace std;
int F_max,S_max;
int Find_SecondMax(int a[],int n)
{
if(n==2)
{
F_max=(a[n-1]>a[n-2]?a[n-1]:a[n-2]);
S_max=(a[n-1]<a[n-2]?a[n-1]:a[n-2]);
return S_max;
}
else
{
S_max=Find_SecondMax(a,n-1);
if(a[n-1]>F_max) S_max=F_max,F_max=a[n-1];
else if(a[n-1]>S_max) S_max=a[n-1];
cout<<"f_max="<<F_max<<" s_max="<<S_max<<endl;
return S_max;
}
}
int main()
{
int a[8]={27,13,31,18,45,16,17,53};
cout<<Find_SecondMax(a,8)<<endl;
}
设计一个回溯算法,找出n个数中第二大的数
最新推荐文章于 2021-12-25 14:47:37 发布