第九周OJ7大奖赛计分

问题及代码

/* 
烟台大学计算机与控制工程学院 
文件名称: 大奖赛计分
作    者:展一 
完成时间:2016年10月27日 
题目描述 
         在歌手大奖赛中,有9位评委为参赛的选手打分,分数为0~10分。
         选手最后得分为:去掉一个最高分和一个最低分后,取其余7个分数的平均值。
         请编写一个程序实现这个程序。
输入 
      9位评委给选手找的分,9个0-10之间的小数。小数点后保留3位
输出 
    选手的最后得分,即9个成绩中去掉一个最高,去掉一个最低后的平均成绩。结果输出中,保留3位小数。
样例输入 
   9.8 6.7 8.9 7.6 4.5 6.5 7.8 4.2 6.4
样例输出 
  6.914
*/  

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


 

运行结果

知识点总结

循环结构的实用。

为了保证去掉的是最高分和最低分,先确定一个比所有值都小的变量max,以及一个比所有值都大的变量min,然后进入循环,将一个个输入的分数与上一次循环赋值的max与min比较大小,从而得出最大值和最小值;每次循环都要进行求和,最后退出循环后减去max和min再/7便是平均值。

学习心得

第一遍做的时候使用的笨办法,输入九个数然后比较大小,结果自然是超出了字符数。询问大神后才得到这种简便方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值