c语言:去除最高分最低分,求平均值|练习题

一、题目
有10个裁判评分,去除最高分和最低分,求运动员的平均分。
如图:

51e0155e865d460d92936ed829163e8a.jpg

 

二、思路分析
1、设置一个数组变量,用冒泡排序法排序
2、数组的首位和最后一位,就是最低分和最高分
3、数组的第二到n-1个,就是符合要求的分数

 

三、代码截图【带注释】

707a33b20ba642488894c4b02727104c.jpg

 

四、源代码【带注释】

#include <stdio.h>
#define N 10//定义常数iconN

//输入10个分数,去除最低分和最高分,求平均值
//思路分析:
//1、设置一个数组变量,用冒泡排序法排序
//2、数组的首位和最后一位,就是最低分和最高分
//3、数组的第二到n-1个,就是符合要求的分数

void sort(int[]);//定义排序函数
void aver(int[]);//定义求平均值函数
int main()
{
    int arricon[N];
    printf("请输入%d个分数。\n\n",N);
    for(int i=0; i<N; i++)
    {
        printf("第%d个:",i+1);
        scanf("%d",&arr[i]);
    }
    sort(arr);
    aver(arr);
}

//用冒泡排序法排序
void sort(int arr[])
{
    int temp=0;
    for(int i=0; i<N-1; i++)
    {
        for(int j=0; j<N-i-1; j++)
        {
            if(arr[j]<arr[j+1])
            {
                temp=arr[j+1];
                arr[j+1]=arr[j];
                arr[j]=temp;
            }
        }
    }
}

//从第二位到N-1位的分数,就是要求的分数
aver(int arr[])
{
    int sum=0;

    //求第二位循环到N-1位的分数和
    for(int i=1; i<N-1; i++)
    {
        sum=sum+arr[i];
    }
    printf("\n去掉\n最高分:%d",arr[0]);
    printf("\n最低分:%d\n",arr[N-1]);
    printf("\n\n%d个分数的平均分是:%.2f",
           N-2,(float)sum/(N-2));
}

 

五、运行结果

31bf6808b4be4fbe8bca7467342ec62f.jpg

 

关注我,每天分享编程知识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木木爱编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值