多组测试数据,
详见Sample Input这道题目的本质是数组排序,可以用sort函数,由于题目说的是按质量从大到小排序(即sort的降序排序)
用到了sort函数的自定义排序:
bool cmp( int a,int b )
{
return a<b;
}
sort( a,a+n,cmp );
#include<stdio.h>#include<algorithm>using namespace std; bool cmp(int a,int b) //自定义排序方式 { return a>b; }int main(){ int a[100]; int n,i,b,num,count; //b:数组a中不重复的数;num:质量的排名;count:相同质量的数量; while(~scanf("%d",&n)) { for( i=0; i<n; i++) { scanf("%d",&a[i]); } sort(a,a+n,cmp); b = a[0]; num = 1; count = 0; for( i=1; num<5; i++ ) { if(b!=a[i]) { b=a[i]; num++; } } for( i=0; i<n; i++ ) { if( b==a[i] ) //此时的b即为第5重的鱼的质量; { count++; } } printf("%d\n",count); } return 0;}
