AT907 心配性な富豪、ファミリーレストランに行く。

题目

题意翻译

输入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;
}

猜你喜欢

转载自www.cnblogs.com/DARTH-VADER-EMPIRE/p/10962645.html