Дана строка формата «Предмет: Фамилия_студента1, Оценка, Фамилия_студента2, Оценка, …» - C#
Формулировка задачи:
Дана строка формата «Предмет: Фамилия_студента1, Оценка, Фамилия_студента2, Оценка, …». По каждому предмету такие строки занесены в массив. Напишите метод формирования массива, содержащего строки формата «Предмет: 70%, 100%» со значениями абсолютной и качественной успеваемости в процентах, соответственно, по каждому предмету.
Решение задачи: «Дана строка формата «Предмет: Фамилия_студента1, Оценка, Фамилия_студента2, Оценка, …»»
textual
Листинг программы
private static void Main() { string[] subjects = { "Math: A, 1, B, 2, C, 3, D, 4, E, 5", "Chem: A, 3, B, 3, C, 3, D, 4" }; string[] result = CalcStat(subjects); Array.ForEach(result, Console.WriteLine); } private static string[] CalcStat(IEnumerable<string> subjects) { return (from subject in subjects let index = subject.IndexOf(':') let name = subject.Substring(0, index) let marks = subject.Substring(index).Split(',').Where((x, i) => i % 2 == 1).Select(int.Parse).ToArray() select new Tuple<string, double[]>(name, new[] { (double)marks.Count(x => x >= 3 && x <= 5) / marks.Length, (double)marks.Count(x => x == 4 || x == 5) / marks.Length })).Select(tuple => $"{tuple.Item1}: {string.Join(", ", tuple.Item2.Select(x => $"{x:P0}"))}").ToArray(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д