问题遇到的现象和发生背景
在歌星大奖赛中,有10个评委为参赛选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。
编程要求:必须用for循环实现
输入要求:输入10个1~100分的数(直接输入10个合法的数据,本题暂且不考虑判断数据的合法性)
输出格式:去掉一个最高分:,去掉一个最低分:,歌手的最后得分为:(最后得分保留到小数点后2位)
运行结果及报错内容
可以输入十个分数,但输出内容全为0.00
我的解答思路和尝试过的方法
#include <stdio.h>
int main()
{
int score[10], i, j, x, sum, ave;
sum=0;
for(i=1;i<=10;i++)
{
printf("输入第%d个成绩:",i);
scanf("%d",&score[i]);
sum=sum+score[i];
fflush(stdin);
}
for(i=1;i<=10;i++)
{
for(j=i; j<=10;j++)
{
if(score[i]>score[j])
{
x=score[i];
score[i]=score[j];
score[j]=x;
}
}
}
ave=(sum-score[1]-score[10])/8.0;
printf("去掉一个最高分:%0.2f\n去掉一个最低分:%0.2f\n歌手的最后得分为:%0.2f",score[10],score[1],ave);
return 0;
}