PTA 循环结构 7-2 评委评分

这是一个C语言程序,用于接收评委对参赛选手的评分,去除一个最高分和一个最低分后,计算并输出选手的平均得分。程序首先读取评委数量,然后逐个读取评分,记录最大分和最小分,最后计算平均分并保留两位小数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

某次比赛有n个评委对参赛选手打分。编程输入各个评委的评分,去掉一个最高分和1个最低分后,输出该选手的平均分。

输入格式:
输入在第一行中给出正整数n,在第二行给出n个0~10之间的浮点数,用空格分开。

输出格式:
在一行中输出去掉最高分和最低分之后的平均分,精确到小数点后2位。

输入样例:

7
9 8 8.5 7 7.9 9.5 8.9

输出样例:

8.46

代码:

#include<stdio.h>
int main() 
{
	int n;
	scanf("%d", &n);
	double sum = 0.0;
	double a;
	double max = 0.0;
	double min = 10.0;
	for (int i = 1; i <= n; i++)
	{
		scanf("%lf", &a);
		sum += a;
		if (a > max)
		{
			max = a;
		}
		if (a < min)
		{
			min = a;
		}
	}
	double average = (sum - max - min) / (n - 2);
	printf("%.2lf", average);
	return 0;
}
### 关于PTA 7-2 循环队列的解析 #### 定义与特性 循环队列是一种特殊的线性数据结构,其操作基于先进先出(FIFO)原则。当存储空间最后一个位置已被占用而需继续存入新元素时,可返回到第一个位置再利用起始部分的空间[^1]。 #### 实现方式 为了有效管理内存并提高效率,在C/C++中通常通过定义固定大小的一维数组来模拟循环队列的行为,并引入两个指针`front``rear`分别指向队头即将插入的新元素的位置。此外还需要设置一个变量用于记录当前队列中的实际元素数量以便判断队满或为空的情况。 #### 初始化函数设计 初始化过程中要设定好上述提到的各种参数初始状态: ```cpp #define MAX_SIZE 100 // 假设最大容量为100 typedef struct { int data[MAX_SIZE]; int front; int rear; } CircularQueue; void Init(CircularQueue *cq){ cq->front = 0; cq->rear = 0; } ``` #### 插入操作 向循环队列入栈时首先要检查是否有足够的剩余空间;若有,则更新相应索引并将数值放入指定位置: ```cpp bool Enqueue(CircularQueue* cq, int value){ if ((cq->rear + 1) % MAX_SIZE == cq->front) { printf("The queue is full\n"); return false; } cq->data[cq->rear] = value; cq->rear = (cq->rear + 1) % MAX_SIZE; return true; } ``` #### 删除操作 从循环队列出栈即移除最前面的一个成员,同样需要注意边界条件处理: ```cpp int Dequeue(CircularQueue* cq){ if(cq->front == cq->rear){ printf("The queue is empty\n"); return -1; // 返回错误码表示失败 } int retValue = cq->data[cq->front]; cq->front = (cq->front + 1) % MAX_SIZE; return retValue; } ``` 以上代码片段展示了如何创建以及维护一个简单的循环队列实例[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值