Дана строка формата «Предмет: Фамилия_студента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();
}

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


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

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

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