| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1888 人关注过本帖
标题:【OJ】求第五重的鱼的数量
取消只看楼主 加入收藏
qq731574722
Rank: 1
等 级:新手上路
帖 子:10
专家分:7
注 册:2016-2-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
【OJ】求第五重的鱼的数量
Description

sls有个喜好,最爱吃草鱼。但天天就知道吃可不行啊,下面问题就来了。话说,能解出这题,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编辑过]

搜索更多相关主题的帖子: 美味 
2016-02-03 02:45
qq731574722
Rank: 1
等 级:新手上路
帖 子:10
专家分:7
注 册:2016-2-3
收藏
得分:0 
回复 2楼 wmf2014
哦~for循环这里是不对,除了这个地方还有哪里要修改吗?
2016-02-03 13:38
qq731574722
Rank: 1
等 级:新手上路
帖 子:10
专家分:7
注 册:2016-2-3
收藏
得分:0 
回复 4楼 qq1023569223
我把你的代码稍微修改了一下,可以运行没问题,但提交上去就是WA,不知道为什么。
程序代码:
#include <stdio.h>

int main( void )
{

    int a[100];
    int i,j,tmp,N;
    scanf("%d",&N);
    for(i=0;i<N;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<N-1;i++)
      for(j=i+1;j<N;j++)
      {
        if(a[i]<a[j])
        {
            tmp=a[i];
            a[i]=a[j];
            a[j]=tmp;
        }
     }

    int count=0,k=0;
    for(i=0;i<N-1;i++)
    {
        if(a[i]!=a[i+1])
        {
            k++;    //一个一个地比较,相邻的不一样就加1
        }
        if(k==4)  //5-1,这时第五的重量就是从a[i+1]开始
        {
            if((i+1)==(N-1))  //这是第五的重量是最后一个数组元素的情况
                count=1;
            else
            {
                for(j=i+1;j<N-1;j++)  //统计相同个数
                   {
                      if(a[j]==a[j+1])
                      {
                         count++;
                      }
                   }
                count+=1;
            }

            break;
        }
    }

    if(count!=0)
    {
        printf("%d\n",count);
    }
    else
    {
        printf("There is no result!");
    }
    return 0;
}
2016-02-03 14:27
qq731574722
Rank: 1
等 级:新手上路
帖 子:10
专家分:7
注 册:2016-2-3
收藏
得分:0 
回复 7楼 qq1023569223
结果是对的,我用的是code blocks,提交的环境就是学校的OJ,我经常碰到类似的问题,确不知道如何解决
2016-02-03 19:00
qq731574722
Rank: 1
等 级:新手上路
帖 子:10
专家分:7
注 册:2016-2-3
收藏
得分:0 
回复 3楼 rjsp
大神你好,一开始我看到你代码里的东西都太高端的就没深究,后来听了十楼的建议认真研究了一下你的思路,才发现原来可以方法可以如此简便和精妙,真是让我大开眼界,我依照你的思路自己写了一份代码再修改了几次提交上去终于AC了,感谢你帮我,顺便也谢一下十楼和其他的大侠。以下是我的代码
程序代码:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n;
    while(scanf("%d",&n)!=EOF){
    int a[21]={0};
    int i,x,y=0;
    for(i=0;i<n;i++)
    {
        scanf("%d",&x);
        a[x]++;
    }
    for(i=21;y<5&&i>0;i--)
    {
        if(a[i-1]!=0)
            y++;
    }
    printf("%d\n",a[i]);
    }
    return 0;
}


最后我还有一个小疑问,为什么排序这种方法不对呢?感觉逻辑上也没有错误啊。望大侠指导。
2016-02-03 22:55
快速回复:【OJ】求第五重的鱼的数量
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014425 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved