#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i=0;
    double score,sum=0,max=-1,min=11,average;
    while(i<9)
    {
        scanf("%lf",&score);
        if(score<0||score>10)
        {
            continue;
        }
        if(score>max)
        {
            max=score;
        }
        if(score<min)
//如果用else if,当评委给分全都一样时,min不会被赋值。。。
        {
            min=score;
        }
        sum+=score;
        i++;
    }
    sum-=max+min;
    average=sum/7;
    printf("%.3f\n",average);
    return 0;
}

或者可以用条件表达式来处理最高分最低分的问题

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


Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐