【OJ】求第五重的鱼的数量
Descriptionsls有个喜好,最爱吃草鱼。但天天就知道吃可不行啊,下面问题就来了。话说,能解出这题,sls就能吃上美味的鲜鱼。于是sls希望你能写个程序帮助他。
给你n(10<=n<=100)条草鱼的重量,每条草鱼的重量为a(1<=a<=20,a为整数)。请你找出从重到轻排后,第五重的草鱼有多少条?(若两条草鱼的重量相同,则他们排相同的序号)。
Input
多组测试数据,
详见Sample Input
Output
详见Sample Output
Sample Input
10
9 4 9 6 7 1 2 4 4 8
Sample Output
3
程序代码:
#include <stdio.h> #include <stdlib.h> int main() { void sort(int a[],int n); int a[100]; int i,n,b,flag,sum; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) { scanf("%d",&a[i]); } sort(a,n); b=a[0]; //b表示测试数组a中的不重复的数 flag=1; //flag用于排名 sum=1; //sum用于统计数量 for(i=1;flag<5;i++) { if(b!=a[i]) //若b与a[i]不相等就使flag自加并将b重新赋值 { b=a[i]; flag++; } } //当flag=5时循环结束,这是b就是第五大的数 for(i=0;i<n;i++) //统计数组a与b相等的数的数量 if(b==a[i]) sum++; printf("%d\n",sum); } return 0; } void sort(int a[],int n) { int i,j,k,temp; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) { if(a[k]<a[j]) { k=j; } } temp=a[k]; a[k]=a[i]; a[i]=temp; } } /************************************************************** Problem: 1049 User: 201501020151 Language: C Result: Wrong Answer ****************************************************************/
选择排序法的函数经测试没有问题,能符合sample input和out。第一次发帖求助,思路可能表达地不是很清楚,希望各路大神带带咱们萌新。
[此贴子已经被作者于2016-2-3 13:39编辑过]