欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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# c#