| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2345 人关注过本帖
标题:有一个小小的问题。希望大神搭把手~~~
只看楼主 加入收藏
caimuyin
Rank: 1
等 级:新手上路
威 望:1
帖 子:32
专家分:2
注 册:2015-3-23
结帖率:40%
收藏
已结贴  问题点数:40 回复次数:5 
有一个小小的问题。希望大神搭把手~~~
在一个大赛中,有10个评委为参赛选手打分,分数为1-100分。
选手最后得分为:去掉一个最高分,去掉一个最低分,其余八个分数的平均值,为这个选手的最后得分。
根据这个得分,从所有的选手中选出前三名。输出名字和成绩。


(这个问题怎么用数据结构来完成,
大神能提供代码最好的 提供80%的积分)
搜索更多相关主题的帖子: 把手 平均值 最好 
2015-06-04 16:14
林月儿
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:40 
//在一个大赛中,有10个评委为参赛选手打分,分数为1-100分。
//选手最后得分为:去掉一个最高分,去掉一个最低分,其余八个分数的平均值,为这个选手的最后得分。
//根据这个得分,从所有的选手中选出前三名。输出名字和成绩。
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#define ArraySize 5
struct grade{
    int data;
    struct grade *lch;
    struct grade *rch;
};
struct PLAYER{
    int num;
    char name[20];
    double ave;
    struct grade *score;
}; 
struct grade *ADD_SCORE_TO_PLAYER(struct grade *rt,int data){
    int FLAG=0;
    struct grade *p,*t;
    p=(struct grade *)malloc(sizeof(struct grade));
    p->data=data;
    p->lch=p->rch=NULL;
    if(rt==NULL)
        rt=p;
    else{
        t=rt;
        while(!FLAG)
            if(t->data>data){if(t->lch==NULL){t->lch=p;FLAG=1;}else t=t->lch;}
            else{if(t->rch==NULL){t->rch=p;FLAG=1;}else t=t->rch;}
    }
    return rt;
}
void GET_SUM(struct grade *sc,int &sum){ 
    if(sc){
        GET_SUM(sc->lch,sum); 
        sum+=sc->data;
         printf("%d\t",sc->data);
        GET_SUM(sc->rch,sum); 
    } 
} 
void SORT(struct PLAYER py[],int n){
    for(int i=0;i<n-1;i++){
        for(int j=n-2;j>=i;j--)
            if(py[j].ave<py[j+1].ave){
                double temp=py[j].ave;
                py[j].ave=py[j+1].ave;
                py[j+1].ave=temp;
            }
    }
}
main()
{
    int i,j,n=10,sc,sum;
    struct PLAYER Array[ArraySize];
    for(i=0;i<ArraySize;i++){
        Array[i].score=(struct grade *)malloc(sizeof(struct grade));
        Array[i].score=NULL;
    }
    for(i=0;i<ArraySize;i++){
        printf("ADD name TO PLAYER %d:\n",i+1);
//        scanf("%s",Array[i].name);  
        Array[i].num=i+1;
        Array[i].ave=0;
        printf("ADD scores TO PLAYER %d:\n",i+1);
        for(j=0;j<n;j++){
            printf("ADD score[%d]\t",j+1);
//            scanf("%d",&sc);
            sc=i*10+j+5;
            Array[i].score=ADD_SCORE_TO_PLAYER(Array[i].score,sc);
        }
    }
    for(i=0;i<ArraySize;i++){
        sum=0;
         GET_SUM(Array[i].score,sum);
        struct grade *s=Array[i].score;
        if(s->lch){
            while(s->lch)s=s->lch;
            sum-=s->data;
        }
        else sum-=s->data;
        s=Array[i].score;
        if(s->rch){
            while(s->rch)s=s->rch;
            sum-=s->data;
        }
        else sum-=s->data; 
        Array[i].ave=1.0*sum/8;
    } 
    SORT(Array,ArraySize);
    printf("RESULTS:\n"); 
    for(i=0;i<3;i++){
//        printf("PLAYER%d:%s",i+1\t,Array[i].name);
        printf("PLAYER%d:%.2lf\n",i+1,Array[i].ave);
    }
    getch();
}


剑栈风樯各苦辛,别时冰雪到时春
2015-06-04 20:17
zcdjt
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:99
专家分:181
注 册:2014-9-9
收藏
得分:0 
回复 2楼 林月儿
楼主用的是二叉树索引吗?

今朝醉
2015-06-07 22:41
林月儿
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 3楼 zcdjt
我不是楼主,用的二叉索引树

剑栈风樯各苦辛,别时冰雪到时春
2015-06-08 07:17
caimuyin
Rank: 1
等 级:新手上路
威 望:1
帖 子:32
专家分:2
注 册:2015-3-23
收藏
得分:0 
能简单点的么 ?
2015-06-23 11:05
林月儿
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 5楼 caimuyin
你要是让其他版主答估计更复杂。。。

剑栈风樯各苦辛,别时冰雪到时春
2015-06-23 11:09
快速回复:有一个小小的问题。希望大神搭把手~~~
数据加载中...
 
   



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

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