PTA:歌唱比赛打分(c)

该博客介绍了一种歌唱比赛的计分方法,即去除一个最高分和一个最低分后,计算剩余分数的算术平均值,并保留两位小数。提供了C++实现的函数`getScore`,该函数接受评委分数数组和评委人数,返回选手的最终得分。在给定的测试案例中,展示了如何使用该函数并输出结果95.00。

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

某歌唱比赛计分规则是:对于评委给出的分数,去掉一个最高分,去掉一个最低分,剩余分数求算术平均值并保留2位小数,作为选手最终得分。

本题要求实现这样一个计分函数。

评委给出的分数存在数组中,分数均为0100之间的整数,并且保证评委人数在320之间。
函数接口定义:
double getScore(int *score, int total);

其中score和total是传入的参数,score是评委打分数组的首地址,total是评委人数;

函数将选手的得分以double类型返回,注意:函数返回的分数只需保证小数点后至少2位精确数字即可,打印2位小数得分的操作由函数调用者进行。
裁判测试程序样例:
/* 此测试程序仅为示例,实际的测试程序可能不同,不要仅针对样例的输入和输出编写函数,而是要根据题意要求编写函数 */
#include <stdio.h>
double getScore(int score, int total);
int main(){
int score[5] = {92, 90, 99, 95, 98}; /
仅为示例,实际的测试程序中,数组大小和元素数值都可能与样例不同 /
printf("%.2f\n", getScore(score, 5) ); /
getScore( )函数只负责返回分值,由main函数中的代码负责按照2位小数打印输出 /
return 0;
}
/
你所编写的函数代码将被嵌在这里,注意:不要提交你编写的用于测试的main( )函数,否则无法通过编译 */

输入样例:
对于本题给出的裁判测试程序样例,没有输入。实际的裁判程序可能有输入。

输出样例:
对于本题给出的裁判测试程序样例,只有一行输出如下。实际的裁判程序可能有其他输出情况。
95.00

double
在C语言中,指针是一个非常强大且灵活的工具,可以用来处理各种数据结构。在pta唱歌比赛中,我们可以使用指针来动态配内存、管理数组和传递参数等。以下是一个简单的示例,展示了如何使用指针来处理评委打分数据。 ```c #include <stdio.h> #include <stdlib.h> // 函数声明 void inputScores(float *scores, int numJudges); float calculateAverage(float *scores, int numJudges); void printScores(float *scores, int numJudges); int main() { int numJudges; printf("请输入评委人数: "); scanf("%d", &numJudges); // 动态配内存 float *scores = (float *)malloc(numJudges * sizeof(float)); if (scores == NULL) { printf("内存配失败\n"); return 1; } // 输入打分 inputScores(scores, numJudges); // 计算平均 float average = calculateAverage(scores, numJudges); // 打印评和平均 printScores(scores, numJudges); printf("平均: %.2f\n", average); // 释放内存 free(scores); return 0; } // 输入打分 void inputScores(float *scores, int numJudges) { for (int i = 0; i < numJudges; i++) { printf("请输入第%d位评委的评: ", i + 1); scanf("%f", &scores[i]); } } // 计算平均 float calculateAverage(float *scores, int numJudges) { float sum = 0; for (int i = 0; i < numJudges; i++) { sum += scores[i]; } return sum / numJudges; } // 打印打分 void printScores(float *scores, int numJudges) { printf("评委打分: "); for (int i = 0; i < numJudges; i++) { printf("%.2f ", scores[i]); } printf("\n"); } ``` 在这个示例中,我们使用了指针来动态配内存、输入评委打分、计算平均和打印打分。指针的使用使得程序更加灵活和高效。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值