在某比赛中有10个评委对选手打分,分数为1到10分。编写程序计算选手终得分,计算规则:去掉一个最高分和一个最低分后其余8个分数的平均值。

不知道哪里出错了,算出来不对

img

试一下输入前sum=0

sum没有初始化

题主sum未赋初值,最高分、最低分的查找一次循环就可以了,修改如下,供参考:

#include<stdio.h>
int main()
{
    float score[10], min, max, sum=0;
    int i;
    printf("请输入10个评委的打分\n\n");
    for (i = 0; i < 10; i++)
    {
        printf("请输入第%d个评委的打分:", i + 1);
        scanf("%f", &score[i]);
        sum += score[i];
    }
    min = score[0]; max = score[0];
    for (i = 0; i < 10; i++)
    {
        if (min > score[i])
            min = score[i];
        if (max < score[i])
            max = score[i];
    }
    printf("去掉一个最高分%.2f\t", max);
    printf("去掉一个最低分%.2f\n", min);
    printf("选手的最终得分:%.2f\n", (sum - min - max) / 8);
    return 0;
}