| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1310 人关注过本帖
标题:评委给5位选手打分,去掉最高分和最低分,最后求平均分,求看看哪里写错了
只看楼主 加入收藏
谢高封
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-5-26
结帖率:0
收藏
已结贴  问题点数:20 回复次数:15 
评委给5位选手打分,去掉最高分和最低分,最后求平均分,求看看哪里写错了
#include<stdio.h>
main()
{
    int a[5],i,j,max,min,temp,s=0;
    double p;
    for(i=0;i<5;i++)
    {
        scanf("%d",&a[i]);
    }
    max=min=a[0];
    for(i=1;i<4;i++)
    {
        if(a[i]>max)
        {
            temp=a[i];
            a[i]=max;
            max=temp;
        }
            if(a[i]<min)
        {
            temp=a[i];
            a[i]=min;
            min=temp;
        }
    }
    for(i=0;min<a[i]<max;i++)
    {
        s=s+a[i];
    }
    p=s/8;
    printf("%f",p);
}
搜索更多相关主题的帖子: include double 
2015-05-26 00:41
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:3 
好像规则都是5个评委对选手打分、去掉最高分最低分吧,这题不需要排序,一次扫描同时获取最高分、最低分和总分,成绩=(总分-最高分-最低分)/3。

能编个毛线衣吗?
2015-05-26 06:38
qq4056
Rank: 1
等 级:新手上路
帖 子:22
专家分:3
注 册:2014-11-18
收藏
得分:3 
min<a[i]<max   这样的表达方式都可以?!求指教
2015-05-26 09:11
calix
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:249
专家分:1442
注 册:2015-5-4
收藏
得分:3 
程序代码:
#include<stdio.h>
main()
{
    int a[5], i, max, min, s;
    double p;
    for(i = 0; i < 5; i++)
    {
        scanf("%d", &a[i]);
    }
    max = min = 0;
    s = a[0];
    for(i = 1; i < 5; i++)
    {
        if(a[i] > a[max])
        {
            max = i;
        } else if(a[i] < a[min])
        {
            min = i;
        }
        s += a[i];
    }
    p = (s - a[min] - a[max])/3;
    printf("%f", p);
}
2015-05-26 09:33
自傲
Rank: 2
等 级:论坛游民
帖 子:53
专家分:95
注 册:2015-5-16
收藏
得分:3 
不愧是版主呀
2015-05-26 11:55
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:3 
回复 4楼 calix
感觉4楼的else多余了,两个if一样吧

剑栈风樯各苦辛,别时冰雪到时春
2015-05-26 12:09
纳兰伽香
Rank: 10Rank: 10Rank: 10
来 自:北京
等 级:贵宾
威 望:10
帖 子:426
专家分:1650
注 册:2015-4-5
收藏
得分:3 
如果个数很多  排序还是很有必要的  这样你就 直接去掉第一个和最后一个  然后对有序数组进行递归运算 也是很简单的事情  个人拙见

顺便 你这么排序你可取 要么对整个数组排序  就是我上面说的

要么一遍扫描  获得最大最小值

[ 本帖最后由 纳兰伽香 于 2015-5-26 13:36 编辑 ]

风回小院庭芜绿,柳眼春相续
2015-05-26 13:35
calix
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:249
专家分:1442
注 册:2015-5-4
收藏
得分:0 
回复 6楼 林月儿
因为两个条件不可能同时成立,少一步判断(个人想法。。。)
2015-05-26 14:05
纳兰伽香
Rank: 10Rank: 10Rank: 10
来 自:北京
等 级:贵宾
威 望:10
帖 子:426
专家分:1650
注 册:2015-4-5
收藏
得分:0 
程序代码:
#include<stdio.h>
void Sort(int a[],int n);
int Sum(int a[], int n);
int main()

 {
     double p;
      int i,sum = 0,N;
      scanf("%d",&N);
      int a[N];
    for(i=0;i<N;i++)
     {
         scanf("%d",&a[i]);
     }
    Sort(a,N);
    sum = Sum(a,N);
    p = (double)(sum-a[0]-a[N-1])/(N-2);
    printf("%f",p);
    return 0; 
    

 }
int Sum(int a[], int n)  
{  
     return n == 0?0 : Sum(a, n -1) + a[n -1];  
}  
void Sort(int a[],int n)
{
    int i,j;
     for(i = 0;i<n;i++)
     {
          for(j = 0;j<n-i-1;j++)
          {
               if(a[j]>a[j+1])
               {
                a[j+1] ^= a[j];
                a[j]   ^= a[j+1];
                a[j+1] ^= a[j];
               }
          }
     }
}


风回小院庭芜绿,柳眼春相续
2015-05-26 17:13
谢高封
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-5-26
收藏
得分:0 
回复 4楼 calix
你好 刚才跑了一遍你的代码 好像不对
2015-05-26 19:55
快速回复:评委给5位选手打分,去掉最高分和最低分,最后求平均分,求看看哪里写 ...
数据加载中...
 
   



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

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