现要实现一个评分系统,一共五个评委打分,评分规则为;5个分数中,去掉一个最高分,一个最低分,余下分数平均分为最终分。已知分数范围为0-10,允许输入小数。完成该评分系统的代码,要求5个评委的分数保存在数组中。
#include <iostream>
using namespace std;
int main(void){
double fractions [5]; // 存储5个分数的数组
double max,min,result=0; // 依次定义存储最高分,最低分和最终分数的变量
// 从输入获取5个分数存入double数组fractions中
// 如果代码不需要这些提示信息,可以将循环中cout语句都去掉
for(int i=0;i<5;i++){
cout<<"请输入第"<<(i+1)<<"个分数:";
cin>>fractions[i];
if(fractions[i]<0||fractions[i]>10){
cout<<"分数范围必须在0到10之间,请重新输入:";
cin>>fractions[i];
}
result+=fractions[i]; //将每个分数累加到最终分数result中
}
// 将数组的分数按从高到低排序
for(int i=0;i<4;i++){
for(int j=i+1;j<5;j++){
if(fractions[i]<fractions[j]){
double temp = fractions[i];
fractions[i] = fractions[j];
fractions[j] = temp;
}
}
}
max = fractions[0]; // 排序后,数组第一个元素即为最高分
min = fractions[4]; // 排序后,数组最后一个分数即为最低分
result = (result -max-min)/3; // 将总的分数减去一个最高分一个最低分的差,再除以3即为最终分数
//cout<<"最高分为:"<<max<<", 最低分为;"<<min<<endl;
// 打印结果
cout<<"最终成绩为:"<<result;
return 0;
}
【以下回答由 GPT 生成】
#include <iostream>
float calculateFinalScore(float scores[]) {
// Find the minimum and maximum scores
float minScore = scores[0];
float maxScore = scores[0];
for (int i = 1; i < 5; i++) {
if (scores[i] < minScore) {
minScore = scores[i];
}
if (scores[i] > maxScore) {
maxScore = scores[i];
}
}
// Calculate the sum of the remaining scores
float sum = 0;
for (int i = 0; i < 5; i++) {
if (scores[i] != minScore && scores[i] != maxScore) {
sum += scores[i];
}
}
// Calculate the average and return the final score
float average = sum / 3;
return average;
}
int main() {
float scores[5];
// Input scores from the five judges
for (int i = 0; i < 5; i++) {
std::cout << "Enter score for judge " << i + 1 << ": ";
std::cin >> scores[i];
}
// Calculate the final score
float finalScore = calculateFinalScore(scores);
// Display the final score
std::cout << "Final score is: " << finalScore << std::endl;
return 0;
}
请注意,以上代码只是一个简单的评分系统的示例,没有进行输入验证和错误处理。在实际应用中,您可能需要添加额外的功能来处理异常情况,例如无效的输入或评委数量不正确的情况。
【相关推荐】