#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;
}