Дана строка формата «Предмет: Фамилия_студента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();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д