python去掉最高分和最低分 成绩计算:评委成绩中去掉一个最高分和一个最低分后的平均分为参赛选手的最终成绩 的英文翻译
成绩计算:评委成绩中去掉一个最高分和一个最低分后的平均分为参赛选手的最终成绩 的英文翻译
成绩计算:评委成绩中去掉一个最高分和一个最低分后的平均分为参赛选手的最终成绩 的英文翻译
After despiting the highest score and the lowest one in the scores which were given by judges ,the average score is the player's final grade.
高分求救程式题:有12个评委。评分按照 去掉一个最高分,去掉一个最低分,取平均分。从而求出选手的成绩。
main()
{
float chengji[12];
int i = 0;
int j = 0;
int k = 0;
float aver;
float min;
float max;
float sum;
float temp;
sum = 0;
for (i = 0; i < 12; i++)
{
scanf("%f", &chengji[i]);
sum +=chengji[i];
}
min = chengji[0];
max = chengji[0];
for (j = 0; j < i - 1; j++)
for (k = j + 1; k < i; k++)
{
if (chengji[j] < chengji[k])
{
temp = chengji[j];
chengji[j] = chengji[k];
chengji[k] = temp;
}
}
aver = (sum-chengji[0]-chengji[11])/ 10;
printf("平均成绩为:%fn", aver);
}
排序还有很多方法,C语言书上有,我只用了最简单的一种(下面加了注解)。
#include <stdio.h>
void main()
{
float chengji[12]; 存放成绩
int i = 0; 回圈控制
int j = 0; 回圈控制
int k = 0; 回圈控制
float aver; 记录平均成绩
float min; 记录最低分
float max; 记录最高分
float sum; 记录总分
float temp; 排序时用于交换
sum = 0; 初始化为0
printf("请输入成绩n");
for (i = 0; i < 12; i++)
{
scanf("%f", &chengji[i]);
sum +=chengji[i]; 将成绩累加
}
min = chengji[0]; 初始化
max = chengji[0]; 初始化
排序,从大到小
for (j = 0; j < i - 1; j++)
for (k = j + 1; k < i; k++)
{
if (chengji[j] < chengji[k])
{
temp = chengji[j];
chengji[j] = chengji[k];
chengji[k] = temp;
}}
aver = (sum-chengji[0]-chengji[11])/ (i-2); 求平均成绩
printf("平均成绩为:%fn", aver);
}
歌手大奖赛有10名评委打分,去掉一个最高分、去掉一个最低分,求选手的平均分。
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i = 0; float x = .0f, y=.0f, sum = .0f, max=-1.0f, min=1e20f;
printf("请输入十位评委打分:");
for(i = 0; i < 10; i++) {
scanf("%f", &x);
y = (float)fabs(x);
if(y>max) max = y;
if(y<min) min = y;
sum+=y;
}
sum -= max;
sum -= min;
printf("n去掉一个最低分%4.3f, 去掉一个最高分%4.3f, 选手最终得分为%4.3fn",
max, min, sum / 8.0f);
system("pause");
return 0;
}
1.编写竞赛用评分程式。10个评委去掉一个最低分,一个最高分,剩余成绩的平均分即为该选手的最后得分。
先排序其实不对!
这样会浪费时间!
知道冒泡法吗?
只要你利用冒泡法的方法,把最小的放在头,最大的放在尾
两遍(有些方法一遍也行)就够了!
中间的不要求有序!
再把中间的求平均数就行了!
排序多了会效率低
一场比赛中,6个评委要给一个歌手打分,去掉一个最高分和一个最低分,平均分为8.6分,去掉一个最低分,平均
应该是题目没写全吧 这个只能算最高9.6分
java编写歌曲比赛评分程式,评委给出8个成绩,去掉一个最高分,去掉一个最低分,剩余的求平均得到成绩。
import java.util.Scanner;
public class Grade {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
double arr[] = new double[5];
for (int i = 0; i < arr.length; i++) {
arr[i] = scan.nextDouble();
}
sort(arr);
average(arr);
}
public static void sort(double arr[]) {
for (int i = 0; i < arr.length; i++) {
double max = arr[0];
for (int j = i; j < arr.length; j++) {
if (arr[i] < arr[j]) {
double temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
public static void average(double arr[]) {
double temp = 0, sum = 0;
for (int i = 1; i < arr.length - 1; i++) {
sum += arr[i];
temp = sum / (arr.length - 2);
}
System.out.println(temp);
}
}
用c语言编写含有阵列的程式,9个评委给某选手打分,去掉一个最高分和一个最低分,求该参赛选手的平均分
#include <stdio.h>
void bubbleSort(int a[]);
int main(void)
{
int a[9] = {0}, i = 0;
float aver = 0.0;
printf("请9位评委依次打分:");
for(i = 0; i < 9; i++)
scanf("%d", &a[i]);
bubbleSort(a);
for(i = 1; i < 8; i++)
aver += a[i];
aver /= 7;
printf("平均分为:%fn", aver);
return 0;
}
void bubbleSort(int a[])
{
int i = 0, j = 0, temp = 0;
for(i = 0; i < 8; i++)
{
for(j = 0; j < 8 - i;j++)
{
if(a[j] > a[j + 1])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
在“校园歌手大赛“中有n位评委为选手打分,其最终得分是去掉一个最高分和最低分后的平均分,程式设计实现成绩
#include<stdio.h>
#define n 10
int main()
{
int score=0,i,max=0,min=0,sum=0;
for(i=1;i<=n;i++)
{
printf("Input score %d=",i);
scanf("%d",&score);
sum+=score;
if(score>max) max=score;
if(score<min) min=score;
}
printf("Canceled max score:%dnCanceled min score:%dn",max,min);
printf("Average score:%dn",(sum-max-min)/8);
}
为什么计算选手的最后得分是要去掉一个最高分和一个最低分来算出选手的平均分?
去掉去掉一个最高分和最低分做法主要是为了公平,公正和公开的原则,防止有人买通评委,有特别的高分出现,另外,也可以防止因为评委个人原因,对选手有“低见”给特别低的分。去掉最高分最低分能够求出较为准确的平均分。数学上叫做随机分布处理。
青歌赛中,有5个评委给一个歌手打分,去掉一个最高分后平均分为9分,去掉一个最低分后平均分为9.2分.
差0.8分
计算过程:
设总分为T,最高分为H,最低分为L。
由题意得 方程一:(T-H)/4=9 ;
方程二:(T-L)/4=9.2 ;
则由方程一得 方程三 T-H=4*9.2=36.8;
由方程二得 方程四 T-L=4*9=36 ;
用方程四减方程三 得 T-L-(T-H)=H-L=0.8
