zcmu1049

1049: 最愛

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 561  Solved: 248
[Submit][Status][Web Board]

Description

sls有個喜好,最愛吃草魚。但天天就知道吃可不行啊,下面問題就來了。話說,能解出這題,sls就能吃上美味的鮮魚。於是sls希望你能寫個程序幫助他。
給你n(10<=n<=100)條草魚的重量,每條草魚的重量爲a(1<=a<=20,a爲整數)。請你找出從重到輕排後,第五重的草魚有多少條?(若兩條草魚的重量相同,則他們排相同的序號)。

Input

多組測試數據,

詳見Sample Input

Output

詳見Sample Output

Sample Input

109 4 9 6 7 1 2 4 4 8

Sample Output

3

HINT

Source

[Submit][Status][Web Board]
ac代碼:
#include <iostream>
#include<cstdio>
#include<algorithm>
#include<string.h>
using namespace std;
int a[105];
bool compare(int b,int c)
{
    return b>c;
}
int main()
{
    int n,temp,counts1,counts2;
    while(scanf("%d",&n)!=EOF)
    {
        counts1=0;
        counts2=0;
        memset(a,0,sizeof(a));
        for(int i=0;i<n;i++)
            scanf("%d",&a[i]);
            sort(a,a+n,compare);
            for(int j=0;j<n;j++)
            {
                if(a[j]!=a[j+1])
                counts1++;
                if(counts1==5)
                {
                    temp=a[j];
                    break;
                }
            }
            for(int k=0;k<n;k++)
            {
                if(a[k]==temp)
                    counts2++;
                if(a[k]<temp)
                    break;
            }
            printf("%d\n",counts2);
    }
    return 0;
}
解題心得:
提交時一直WA,找不到問題所在,後面突然想到,若第一次輸入15條魚的重量的數據,第二次輸入10條魚的重量的數據,則只有10個數據被覆蓋,另外5個數據依然存在數組中,第二次計算時,又會被利用,導致錯誤。加入memset(a,0,sizeof(a));這一條語句後,就AC了。

發佈了45 篇原創文章 · 獲贊 2 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章