Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Массивы в C#


Автор: maydayss 20.12.2012, 21:55
Помогите составить программу:

Вычислить среднее арифметическое нечётных по номеру элементов массива. smile 

Автор: Illusion Dolphin 22.12.2012, 23:09
Очень некрасиво, сдать преподу не получится но смысл можно уловить:
Код

            var mass = new [] {1, 2, 3, 5, 7, 8, 9, 45, -4};
            var result = mass.Select(x => new
            {
                Number = mass.ToList().IndexOf(x) + 1,
                Value = x
            }).Where(x => x.Number % 2 == 1).Average(x => x.Value);

Автор: IBS 23.12.2012, 17:53
Цитата(Illusion Dolphin @  22.12.2012,  23:09 Найти цитируемый пост)
Очень некрасиво, сдать преподу не получится но смысл можно уловить:

Ну вообще-то преподу сдать получится, но реально некрасиво. Часто замечаю: многие не знают, что у методов select, where есть перегрузки с индексом текущего элемента. Это не наезд, просто дополнение =)
Код

            var arr = new[] { 4, 2, 3, 5, 6 };
            double average = arr.Where((x, index) => index % 2 != 0).Average();

А вообще в идеале за один проход надо такую штуку делать )

Автор: Illusion Dolphin 23.12.2012, 18:20
Цитата

у методов select, where есть перегрузки с индексом текущего элемента.

Стыд и позор мне, я такого не знал smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)