题意翻译
输入N,和N个数字,问第二大的数是多少
注意:输入 4 100 200 300 300(200是认为第二大的)
2<=N<=100,N个数字的范围在1~1000
话说某岛国很能出超级水的紫、黑题,往往岛国文说得很玄学,翻译过来简直是侮辱智商……(逃
先排序,在从后往前找。因为如果最大数不只出现过一次,那么排完序后从最后一个开始就一直是最大数,如果不同,那么一定是第二大的数,输出完退出就行(一定要在末尾数出一个换行,不然全 WA)。
像这样:
//排序前: 100 100 100 200 200 200 //排序后: 200//第一大。 200 200 100//第二大。 100 100
#include<bits/stdc++.h>
using namespace std;
int a[105],n;
int main()
{
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d",&a[i]);
sort(a,a+n);//排序。
for(int i=n-2;i>=0;i--)//从后往前找。
{
if(a[i]!=a[i+1])//不是最大的。
{
printf("%d\n",a[i]);//一定要输出一个换行!!!
return 0;
}
}
return 0;
}
原文:https://www.cnblogs.com/DARTH-VADER-EMPIRE/p/10962645.html