C语言实例:计算选手比赛平均得分(去掉最高分和最低分)
C语言实例:计算选手比赛平均得分
本篇文章将带您使用C语言编写一个程序,用于计算比赛中选手的平均得分,其中最高分和最低分会被剔除。
问题描述
评委会给参赛选手现场打分。选手得分的计算规则为:去掉一个最高分和一个最低分,然后计算平均得分。
代码实现
以下是使用C语言编写的解决方案:
#include <stdio.h>
void calculateScore(int scores[], int n) {
int minScore = scores[0]; // 初始化最低分为第一个分数
int maxScore = scores[0]; // 初始化最高分为第一个分数
int sum = scores[0]; // 初始化总分为第一个分数
for (int i = 1; i < n; i++) {
if (scores[i] < minScore) {
minScore = scores[i]; // 更新最低分
}
if (scores[i] > maxScore) {
maxScore = scores[i]; // 更新最高分
}
sum += scores[i]; // 累加总分
}
double average = (sum - minScore - maxScore) * 1.0 / (n - 2); // 计算平均分
printf('%.1lf\n', average);
}
int main() {
int n;
scanf('%d', &n);
int scores[100];
for (int i = 0; i < n; i++) {
scanf('%d', &scores[i]);
}
calculateScore(scores, n);
return 0;
}
代码解释
- 首先,定义一个函数
calculateScore,用于计算选手的最后得分。函数的参数为一个整型数组scores和数组的长度n。 - 在函数中,首先初始化最低分、最高分和总分为第一个分数。
- 使用一个循环,从第二个分数开始遍历,更新最低分、最高分和累加总分。
- 根据题目的要求,剔除最低分和最高分后,计算剩余分数的平均分。
- 最后,输出最后得分,保留小数点后一位。
- 在
main函数中,使用scanf函数读取输入的评委数量 n。 - 定义一个整型数组
scores,用于存储评委们的打分。 - 使用一个循环,读取每个评委的打分,并将其存储到数组
scores中。 - 调用
calculateScore函数计算选手的最后得分。 - 注意:在示例代码中,我们假设评委数量不超过 100。您可以根据实际情况进行调整。
示例输入输出
输入样例 1:
5
80 84 92 90 71
输出样例 1:
84.7
输入样例 2:
7
67 80 66 75 78 70 72
输出样例 2:
72.4
原文地址: https://www.cveoy.top/t/topic/ck8W 著作权归作者所有。请勿转载和采集!