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

一、题目

有10个裁判评分,去除最高分和最低分,求运动员的平均分。

如图:

二、思路分析

1、设置一个数组变量,用冒泡排序法排序

2、数组的首位和最后一位,就是最低分和最高分

3、数组的第二到n-1个,就是符合要求的分数

三、代码截图【带注释】

四、源代码【带注释】

#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));

}

五、运行结果

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

相关推荐
玉树临风ives9 小时前
atcoder ABC436 题解
c++·算法·leetcode·atcoder·信息学奥赛
倔强的小石头_9 小时前
Python 从入门到实战(八):类(面向对象的 “对象模板”)
服务器·开发语言·python
patrickpdx9 小时前
leetcode:相等的有理数
算法·leetcode·职场和发展
我在人间贩卖青春9 小时前
线性表之循环队列
数据结构·队列·循环队列
dragoooon349 小时前
[C++——lesson29.数据结构进阶——「AVL树」]
算法
碧海银沙音频科技研究院9 小时前
论文写作word插入公式显示灰色解决办法
人工智能·深度学习·算法
Mr_Xuhhh9 小时前
第一部分:类和对象(中)— 取地址运算符重载
java·开发语言
Selegant9 小时前
告别传统部署:用 GraalVM Native Image 构建秒级启动的 Java 微服务
java·开发语言·微服务·云原生·架构
长沙京卓9 小时前
【无人机算法】低空经济下无人机巡检检测识别算法(城市、林业、水利)
算法·无人机
hn小菜鸡9 小时前
LeetCode 1971.寻找图中是否存在路径
算法·leetcode·职场和发展