C#去掉一个最高分和一个最低分后所得的平均分,然后进行排序得到比赛结果
程序员文章站
2022-03-25 10:29:03
...
学院举行一场校园演讲比赛,共有10位评委为选手打分,为了让比赛更公平,每位选手的最后得分是在10评委分中去掉一个最高分和一个最低分后所得的平均分,然后进行排序得到比赛结果。如果是人工操作难免有失误,假设你是记分员同学,请你编写一道程序来完成这一任务
下面是代码(C#):我写了好久
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 调试
{
class Program
{
static void Main(string[] args)
{
int person = 0;
double[] score = new double[10];
Console.WriteLine("请输入请问有多少位选手参赛?");
person = int.Parse(Console.ReadLine());
double[] a = new double[person];
for (int x = 0; x < person; x++)
{
double sum = 0;
double average = 0;
Console.WriteLine("请输入第{0}位选手评委打分:", x + 1);
for (int i = 0; i < 10; i++)
{
score[i] = double.Parse(Console.ReadLine());
}
for (int i = 0; i < 10; i++)
{
sum += score[i];
}
sum -= score.Max();
sum -= score.Min();
average = sum / 8;
Console.WriteLine("去掉一个最高分:{0}分,去掉一个最低分:{1}分,{2}号选手最终得分:{3}分", score.Max(), score.Min(), x + 1, average);
a[x] = average;
}
//遍历输出数组a[i]的元素
/*for(int i =0; i<a.Length;i++)
{
Console.WriteLine(a[i]);
}*/
Console.WriteLine("{0}位选手最终排名(从最高分到最低分):",person);
Array.Sort(a);
Array.Reverse(a);
for (int i = 0; i < a.Length; i++)
{
Console.Write(a[i] + " ");
}
Console.ReadKey();
}
}
}
运行结果图:
上一篇: C#入门
下一篇: C#中的数组型参数学习笔记