Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2015, 15:23   #1
Pashik1980
 
Регистрация: 01.12.2015
Сообщений: 6
По умолчанию Найти среднее арифметическое каждого из столбцов имеющих четные номера

Сейчас изучаю тему многомерные массивы. Помогите написать программу.
Дан двумерный массив. Найти среднее арифметическое каждого из столбцов; каждого из столбцов, имеющих четные номера. При решении задачи предусмотреть вывод массива в виде таблицы (каждую строку таблицы отделять при выводе на экран переводом на новую строку).
Большое спасибо за помощь.
Pashik1980 вне форума Ответить с цитированием
Старый 01.12.2015, 17:30   #2
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Код:
using System;
using System.Collections.Generic;
using System.Linq;

namespace Array
{
    static class Program
    {
        static void Main()
        {
            var array = GenerateArray( 10, 20 );
            WriteToConsole( array );
            Console.WriteLine( "All averages" );
            PrintColumnsAverage( array, indexColumn => true );
            Console.WriteLine( "All averages with indexColumn % 2 == 0" );
            PrintColumnsAverage( array, indexColumn => indexColumn % 2 == 0 );
            Console.ReadKey();
        }

        private static void PrintColumnsAverage( IEnumerable< int[] > array, Func< int, bool > columnSelector )
        {
            if ( array == null )
                throw new ArgumentNullException( "array" );
            if ( columnSelector == null )
                throw new ArgumentNullException( "columnSelector" );

            foreach ( var val in
                array.SelectMany( row => row.Select( ( colValue, index ) => new { Value = colValue, Index = index + 1 } ) ).
                    GroupBy( item => item.Index ).
                    Where( item => columnSelector( item.Key ) ).
                    Select( item => new { Average = item.Average( col => col.Value ), Index = item.Key } ) )
                Console.WriteLine( "Col= {0}, Average={1}", val.Index, val.Average );
        }

        private static void WriteToConsole( IEnumerable< int[] > array )
        {
            if ( array == null )
                throw new ArgumentNullException( "array" );
            foreach ( var row in array )
                Console.WriteLine( string.Join( " ", row ) );
        }

        private static int[][] GenerateArray( int rowsCount, int columnsCount )
        {
            if ( rowsCount <= 0 )
                throw new ArgumentException( "rowsCount" );
            if ( columnsCount <= 0 )
                throw new ArgumentException( "columnsCount" );
            var counter = 0;
            return Enumerable.Range( 0, rowsCount ).Select( i => Enumerable.Range( 0, columnsCount ).Select( j => counter++ ).ToArray() ).ToArray();
        }
    }
}
Не давай организму поблажки, каждый день тренируй его в шашки..

Последний раз редактировалось Скарам; 01.12.2015 в 17:48.
Скарам вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FASM: Задан одномерный массив. Вычислить сумму элементов массива, имеющих четные номера 1234568654321 Помощь студентам 1 02.05.2015 12:14
Помогите доделать!! Дана целочисленная матрица А размером nхm. Найти среднее арифметическое каждого столбца матрицы и сумму (на С) tomas88 Помощь студентам 1 27.04.2014 15:49
Найти среднее арифметическое их квадратов и среднее арифметическое их модулей. (Турбо паскаль) erte Помощь студентам 1 30.10.2012 13:08
С++ Найти среднее арифметическое положительных и среднее арифметическое отрицательных чисел, минимальное по модулю число. Юрик 530 Помощь студентам 4 03.12.2011 16:26
Сумма элементов массива, имеющих четные номера. Андрей.12 Помощь студентам 1 28.12.2009 18:58