4 歌星大奖赛

  在歌星大奖赛中,有10个评委为参赛选手打分,分数为1到100分。选手最后得分为去掉一个最高分和一个最低分后其余8个分数的平均值。编写程序实现。

#include<stdio.h>        //编译通过,但是录入分数时出错。
int main()
{
float a[10]={0.0};
float num=0.0;

int i;
for(i=0;i<10;i++) //录入分数
{
printf("input the %d scores:",i+1);
scanf("%f",a[i]);
}
int j;
float tmp;
for(i=0;i<9;i++) //冒泡排序
{
for(j=0;j<9-i;j++)
{
if(a[j]>a[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=a[j];
}
}
}

for(i=2;i<10;i++) //求8个分数的平均值
{
num+=a[i];
}
printf("the averg is: %f\n",num/8);

return 0;
}

 

 

正确解法:

#include<stdio.h>
int main()
{
int integer,i,max,min,sum;
max=-32768; //初始最大值为-32768
min=32767; //初始最小值为32767
sum=0;
for(i=1;i<=10;i++) //录入分数
{
printf("input number %d:",i);
scanf("%d",&integer);
sum+=integer;
if(integer>max) //筛选出最大值
{
max=integer;
}
if(integer<min) //筛选出最小值
{
min=integer;
}
}
printf("the highest socre is:%d\n",max);
printf("the lowest socre is:%d\n",min);
printf("the averger socre is :%d\n",(sum-max-min)/8);
return 0;
}

 

posted @ 2011-11-29 15:40  auleaf  阅读(269)  评论(0编辑  收藏  举报