C#去掉一个最高分和一个最低分后所得的平均分,然后进行排序得到比赛结果

学院举行一场校园演讲比赛,共有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();
        }

    }
}

运行结果图:
在这里插入图片描述

发布了7 篇原创文章 · 获赞 0 · 访问量 99

猜你喜欢

转载自blog.csdn.net/HCY008042/article/details/104657970