题目
题意翻译
输入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; }