给出一个含有十个整数的数组,除了最大值和最小值之外的八个数,求他们的平均数
输入10个数,循环遍历处理就可以了。参考如下:
#include "stdio.h"
void main()
{
float a[10],max=0,min=10,sum=0;
int i;
printf("* 卡拉OK大赛评分系统 *\n");
printf("===================================================================\n");
printf(" 第一届中华杯校园歌手卡拉OK大赛开始了 \n");
printf("===================================================================\n");
for(i=0;i<10;i++)
{
printf("请输入第%d位评委的分数:",i+1);
scanf("%f",&a[i]);
}
max=min=a[0];
for(i=0;i<10;i++)
{
if(max<a[i])
max=a[i];
if(min>a[i])
min=a[i];
sum += a[i];
if(i%5==0)
printf("\n");
printf("%0.2f\t",a[i]);
}
printf("\n去掉一个最高分:%0.2f\n",max);
printf("去掉一个最低分:%0.2f\n",min);
printf("选手的最后得分是:%0.2f",(sum-max-min)/8);
}
思路:可以先对数组进行排序,然后去掉第一个和最后一个。再对剩下的八个进行求平均值。
代码如下,如有帮助,请采纳一下,谢谢。
#include <stdio.h>
int main()
{
int a[10],i,max,min;
float avg = 0.0;
printf("请输入10个数:");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
if(i==0)
{
max = a[i];
min = a[i];
}
else
{
if(a[i]>max)
max = a[i];
if(a[i] < min)
min = a[i];
}
avg += a[i];
}
avg = (avg - max - min)/8;
printf("最大值=%d, 最小值=%d ,平均值=%f\n",max,min,avg);
return 0;
}