【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编辑过]









