| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2926 人关注过本帖
标题:求教大神为什么答案错误?
只看楼主 加入收藏
猴开森
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2016-11-27
结帖率:60%
收藏
 问题点数:0 回复次数:6 
求教大神为什么答案错误?
最近"老王"很开心.他在大一的时候参加过数计学院的“软件小组”。告诉你个秘密,这个小组是个好地方,不但活动精彩而且有MM。 
这不,这个小组举办了一个叫做“计算机演讲大赛”的节目。这个节目有好多人参加,这不,成绩出来了,"老王"当是很勇敢,自告奋勇接下了算出大家的总得分的任务。 
当时有7个评委,每个评委都要给选手打分,现在要求去掉一个最高分和去掉一个最低分,再算出平均分。结果精确到小数点后两位。
输入
测试数据包括多个实例。 
每组数据包括7个实数,代表评委们对该选手的评分。紧接着是选手的名字,名字的长度不超过30个字符。 
输入直到文件结束。
输出
算出每位选手名字和最终得分,结果保留两位有效数字
样例输入
10 10 10 10 10 10 9 xiaoyuanwang
0 0 0 0 0 0 0 beast

#include<stdio.h>
int main()
{
    int a[7];
    while(scanf("%d",&a[0])!=EOF)
    {
        int max,c=0,b=0,min,sum=0,i;
        float ave;
        char str[30];
        for(i=1;i<7;i++)
        {
            scanf("%d",&a[i]);
        }
        scanf("%s",str);
        {
            max=a[0];
            min=a[0];
            for(i=0;i<7;i++)
            {
                if(max<a[i])
                {
                    max=a[i];
                    c=i;
                }
                if(min>a[i])
                {
                    min=a[i];
                    b=i;
                }

            }
            a[c]=0;
            a[b]=0;
            for(i=0;i<7;i++)
            {
                sum=sum+a[i];
            }
            ave=sum/5.0;
            printf("%s",str);
            printf(" %.2f\n",ave);
            }
    }


    return 0;
}

搜索更多相关主题的帖子: 计算机 小数点 而且 秘密 软件 
2017-02-06 14:24
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
每组数据包括7个实数,代表评委们对该选手的评分。紧接着是选手的名字,名字的长度不超过30个字符

程序代码:
#include <stdio.h>
int main( void )
{
    double score[7];
    char name[31];
    for( ; scanf("%lf%lf%lf%lf%lf%lf%lf%s",score+0,score+1,score+2,score+3,score+4,score+5,score+6,name)==8; )
    {
        double sum=score[0], max=score[0], min=score[0];
        for( size_t i=1; i!=7; ++i )
        {
            sum += score[i];

            if( max < score[i] )
                max = score[i];
            if( min > score[i] )
                min = score[i];
        }

        printf( "%s %.2f\n", name, (sum-max-min)/5.0 );
    }

    return 0;
}

2017-02-06 14:40
猴开森
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2016-11-27
收藏
得分:0 
回复 2楼 rjsp
为什么我改了还是答案错误?求教大神
#include<stdio.h>
int main()
{
    double a[7],max,min,sum=0.0;
    while(scanf("%lf",&a[0])!=EOF)
    {
        int c=0,b=0,i;
        double ave;
        char str[31];
        for(i=1;i<7;i++)
        {
            scanf("%lf",&a[i]);
        }
        scanf("%s",str);
        max=a[0];
        min=a[0];
        for(i=0;i<7;i++)
        {
            if(max<a[i])
            {
                max=a[i];
                c=i;
            }
            if(min>a[i])
            {
                min=a[i];
                b=i;
            }

        }
        a[c]=0;
        a[b]=0;
        for(i=0;i<7;i++)
        {
            sum=sum+a[i];
        }
        ave=sum/5.0;
        printf("%s",str);
        printf(" %.2lf\n",ave);

    }


    return 0;
}
2017-02-06 15:10
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
回复 3楼 猴开森
恶习而已
比如 sum 只在while中使用,尝试将 double sum=0.0; 移至 while 内部试试。
2017-02-06 15:43
猴开森
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2016-11-27
收藏
得分:0 
回复 4楼 rjsp
多谢大神
2017-02-06 16:32
猴开森
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2016-11-27
收藏
得分:0 
回复 4楼 rjsp
多谢大神
2017-02-06 16:32
猴开森
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2016-11-27
收藏
得分:0 
还有一个错误  这样改就对了
#include<stdio.h>
int main()
{
    double a[7];
    while(scanf("%lf",&a[0])!=EOF)
    {
        int c=0,b=6,i;
        double ave,sum=0.0,max,min;
        char str[31];
        for(i=1;i<7;i++)
        {
            scanf("%lf",&a[i]);
        }
        scanf("%s",str);
        max=a[0];
        min=a[6];
        for(i=0;i<7;i++)
        {
            if(max<a[i])
            {
                max=a[i];
                c=i;
            }
            if(min>a[i])
            {
                min=a[i];
                b=i;
            }

        }
        a[c]=0;
        a[b]=0;
        for(i=0;i<7;i++)
        {
            sum=sum+a[i];
        }
        ave=sum/5.0;
        printf("%s",str);
        printf(" %.2lf\n",ave);

    }


    return 0;
}

2017-02-06 16:43
快速回复:求教大神为什么答案错误?
数据加载中...
 
   



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

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