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;
}
有梦想就不会觉得苦.
Do you know what is the glittering life?