Как вывести средний бал? - 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; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д