比赛中,10个评委分别打分,所给最高分为10分,去掉一个最低分和一个最高分,求平均分。(结果保留两位小数)
//在此处编写代码
#include <stdio.h>
int main()
{
int i=0,j=0,t=0;
int a[10]={0};
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
double sum=0;
for(i=1;i<9;i++)
{
sum=sum+a[i];
}
double p=sum/8.0;
printf("%.2lf",p);
return 0;
}
思路:1.先要分辨出最高值和最低值。我们采用冒泡排序,这样最高和最低分别是最后一个元素和第一个元素。
2.这里把sum从int变成double并且把8改成8.0,是因为整型与整型运算,得到的所有数据都会被先强制隐形转换为整型。若得出浮点型数据,会造成精度损失。此时就算再把sum赋值给非整型变量,变量也只能接受到一个整型数据。