给出一个含有十个整数的数组,除了最大值和最小值之外的八个数,求他们的平均数

给出一个含有十个整数的数组,除了最大值和最小值之外的八个数,求他们的平均数

输入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;
}