某次比赛有十个评委打分,一个选手的成绩为: 去掉一个最高分,去掉一个最低分,剩下的八个分数的平均分 即为该选手的得分。求某一个选手的得分,且最终得分保留小 数点后的2位小数。
算法分析:
1、定义变量score,max,min,sum=0;
2、输入变量score的值,把score加入到sum里,并把score的值赋给max和min;
3、利用for循环语句,定义变量i=0;
4、如果i<9,则执行5;否则执行8;
5、输入变量score的值,并把score加到sum里;
6、如果score>max,则max=score;如果score<min,则min=score;
7、i++,回到4;
8、把sum减去max和min,输出sum/8;
float score,max,min,sum=0;
scanf("%f",&score);
sum+=score;
max=score;
min=score;
for(int i=0;i<9;i++)
{
scanf("%d",&score);
sum+=score;
if(score>max)
max=score;
if(score<min)
min=score;
}
sum-=max+min;
printf("%f",sum/8);
这样可以吗
#include<stdio.h>
int main()
{
double score[10],max,min,sum;
int i;
max=sum=0;
for(i=0;i<10;i++)
{
scanf("%lf",&score[i]);
sum +=score[i];
if(i==0)
min=score[0];
if(score[i]>max)
max=score[i];
if(score[i]<min)
min=score[i];
}
sum = (sum -max -min)/8;
printf("%.2f\n",sum);
return 0;
}