大奖赛计分

来源:互联网 发布:衣服设计软件 编辑:程序博客网 时间:2024/05/01 18:53

 

题目描述
在歌手大奖赛中,有9位评委为参赛的选手打分,分数为0~10分。选手最后得分为:去掉一个最高分和一个最低分后,取其余7个分数的平均值。请编写一个程序实现这个程序。

输入
9位评委给选手找的分,9个0-10之间的小数

输出
选手的最后得分,即9个成绩中去掉一个最高,去掉一个最低后的平均成绩。结果输出中,保留3位小数。

样例输入
9.8 6.7 8.9 7.6 4.5 6.5 7.8 4.2 6.4
样例输出
6.914
提示

设置小数点后保留3位,用cout<<setiosflags(ios::fixed)<<setprecision(3);。还要记得#include<iomanip>

 


#include "stdio.h"                                                 
int main()
{
    int i=1;
    double ave, score, sum, max, min;
    max=-1;
    min=11;
    sum=0;
    do
    {
        scanf("%lf", &score);
        sum+=score;
        if(max<score)
            max=score;
        if(min>score)
            min=score;
        i++;
    }
    while(i<=9);
    ave = (sum-max-min)/7;
    printf("%.3f\n", ave);
    return 0;
}

 


#include <stdio.h> 
#define n 10 
int main( ) 

    int i=1; 
    double ave, score, sum, max, min;  //这几个变量涉及成绩,double是合理的 
    max=-1;  //这儿有技巧,第1位评委给的成绩一定大于-1,max将变成第1个成绩 
    min=11;  //同样和技巧,要学会这样“设圈套” 
    sum=0;   //注意:这4个变量在循环内赋初值是必须的,这意味着计算某一选手成绩的开始 
    printf("请输入选手的成绩(0-10)\n"); 
    do  //至少有一位评委,再用do循环 
    { 
        printf("第 %d 位评委给分:", i); 
        scanf("%lf", &score); 
        sum+=score; 
        if(max<score) 
            max=score;  // 联想上一层循环中max的初值,学会技巧 
        if(min>score) 
            min=score;    
        i++; 
    } 
    while(i<=n); 
    //下面开始计算 
    ave = (sum-max-min)/(n-2); 
    printf("减去一个最高分: %.3f\n", max); 
    printf(", 减去一个最低分: %.3f\n", min); 
    printf("当前选手的最后得分是:%.3f\n", ave); 
    printf("******************* SUCCESS ***********************\n"); 
    return 0; 

0 0
原创粉丝点击