Как вывести средний бал? - C#

Узнай цену своей работы

Формулировка задачи:

На вход программе подаются сведения о сдаче экзаменов учениками 9-х классов некоторой средней школы. В первой строке сообщается количество учеников N, которое не меньше 10, но не превосходит 100, каждая из следующих N строк имеет следующий формат: <Фамилия> <Имя> <оценки>, где <Фамилия> - строка, состоящая не более чем из 20 символов, <Имя> — строка, состоящая не более чем из 15 символов, <оценки> - через пробел три целых числа, соответствующие оценкам по пятибалльной системе. <Фамилия> и <Имя>, а также <Имя> и <оценки> разделены одним пробелом. Пример входной строки: Иванов Петр 4 2 4 Требуется написать как можно более эффективную программу, которая будет выводить на экран фамилии и имена трех худших по среднему баллу учеников. Если среди остальных есть ученики, набравшие тот же средний балл, что и один из трех худших, то следует вывести и их фамилии и имена Есть пример в порядке уменьшения числа двоек:
            Console.WriteLine("Введите n");
            int n = int.Parse(Console.ReadLine());// введите число учеников
            List<string> list = new List<string>(n);
            for (int i = 0; i < n; i++)
            {
                list.Add(Console.ReadLine());
            }
            var answer = from l in list
                         where l.Contains('2')
                         orderby new Regex("2").Matches(l).Count descending
                         select l.Substring(0, l.LastIndexOf(' ') - 4);
            foreach (var a in answer)
            {
                Console.WriteLine(a);
            }
            Console.ReadKey();
            Console.ReadLine();
я понял что нужно находить среднее арифметическое пример:
 double[] arr = new double[3] { d1, d2, d3 };
но как это реализовать?
или может лучше забросить все сведения в файл и от туда считывать?

Решение задачи: «Как вывести средний бал?»

textual
Листинг программы
    class Program
    {
        static void Main(string[] args)
        {
            List<students> list = new List<students>();
            Random rand = new Random();
            list.Add(new students() { surname = "Иванов", name = "Петр", firstMark = rand.Next(1, 5), secondMark = rand.Next(1, 5), thirdMark = rand.Next(1, 5) });
            list.Add(new students() { surname = "Петров", name = "Андрей", firstMark = rand.Next(1, 5), secondMark = rand.Next(1, 5), thirdMark = rand.Next(1, 5) });
            list.Add(new students() { surname = "Джеймсон", name = "Игорь", firstMark = rand.Next(1, 5), secondMark = rand.Next(1, 5), thirdMark = rand.Next(1, 5) });
            list.Add(new students() { surname = "Джексон", name = "Евгений", firstMark = rand.Next(1, 5), secondMark = rand.Next(1, 5), thirdMark = rand.Next(1, 5) });
            list.Add(new students() { surname = "Луев", name = "Виталий", firstMark = rand.Next(1, 5), secondMark = rand.Next(1, 5), thirdMark = rand.Next(1, 5) });
            list.Add(new students() { surname = "Цезарь", name = "Дмитрий", firstMark = rand.Next(1, 5), secondMark = rand.Next(1, 5), thirdMark = rand.Next(1, 5) });
            list.Add(new students() { surname = "Далий", name = "Петр", firstMark = rand.Next(1, 5), secondMark = rand.Next(1, 5), thirdMark = rand.Next(1, 5) });
            list.Add(new students() { surname = "Андерсон", name = "Петр", firstMark = rand.Next(1, 5), secondMark = rand.Next(1, 5), thirdMark = rand.Next(1, 5) });
            list.Add(new students() { surname = "Малахов", name = "", firstMark = rand.Next(1, 5), secondMark = rand.Next(1, 5), thirdMark = rand.Next(1, 5) });
            list.Add(new students() { surname = "Ласюк", name = "Владимир", firstMark = rand.Next(1, 5), secondMark = rand.Next(1, 5), thirdMark = rand.Next(1, 5) });
            list.Add(new students() { surname = "Андри", name = "Петр", firstMark = rand.Next(1, 5), secondMark = rand.Next(1, 5), thirdMark = rand.Next(1, 5) });
 
            List<students> newList = new List<students>();
            foreach(var item in list)
            {
                double sr = ((double)item.firstMark + (double)item.secondMark + (double)item.thirdMark) / 3;
                newList.Add(new students() { surname = item.surname, name = item.name, srMark = sr });
                Console.WriteLine(item.surname + " " + item.name + " " + item.firstMark + " " + item.secondMark + " " + item.thirdMark + ". Средний балл = {0:0.00}", sr );
            }
            Console.WriteLine("Худшие ученики");
            newList = newList.OrderBy(o => o.srMark).ToList();
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine(newList[i].surname + " " + newList[i].name + " " + newList[i].srMark);
            }
            for (int i = 4; i < newList.Count; i++)
            {
                if (newList[i].srMark == newList[3].srMark)
                {
                    Console.WriteLine(newList[i].surname + " " + newList[i].name + " " + newList[i].srMark);
                }
            }
            
            Console.ReadLine();
        }
    }
 
    class students
    {
        public string surname { get; set; }
        public string name { get; set; }
        public int firstMark { get; set; }
        public int secondMark { get; set; }
        public int thirdMark { get; set; }
 
        public double srMark { get; set; }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5
Похожие ответы