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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2012, 17:27   #1
ksenia/shtepa
Новичок
Джуниор
 
Регистрация: 04.05.2012
Сообщений: 1
По умолчанию Все отрицательные элементы массива увеличить на величину, равную среднему значению положительных элементов массива

Может кто подскажет как решить задачу на С#(консоли)???

"Все отрицательные элементы массива увеличить на величину, равную среднему значению положительных элементов массива"

Заранее огромное спасибо!!
ksenia/shtepa вне форума Ответить с цитированием
Старый 04.05.2012, 17:41   #2
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

Код:
int[] arr = new int[] { -1, -2, 5, 5, 10, -3 };
            int md = 0;
            int c = 0;
            for(int i = 0; i < arr.Length; i++)
            {
                if (arr[i] > 0)
                {
                    md += arr[i];
                    c++;
                }
            }

            md = md / c;

            for (int i = 0; i < arr.Length; i++)
            {
                if (arr[i] < 0)
                {
                    arr[i] += md;
                }
            }
Guy вне форума Ответить с цитированием
Старый 04.05.2012, 18:29   #3
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

Код:
           var arr = new double[] { 1, -2, 1, 0, -1, -2 };
            var avg = arr.Where(i => i > 0).Average();
            arr = arr.Select(i => i < 0 ? i + avg : i).ToArray();
Reskov вне форума Ответить с цитированием
Старый 04.05.2012, 19:06   #4
userVaz
Новичок
Джуниор
 
Регистрация: 04.05.2012
Сообщений: 5
По умолчанию

мой вариант

Код:
public static int[] arr = new int[] { 0, 1, -1, -3, 1, 5, 2, -4, 1, -9, 10, 30, -100, 100 };

float mdlValue,ttl =0 ,sum = 0;
arr.ToList().ForEach(( x ) => sum += x > 0 ? x : 0);
arr.ToList().ForEach(( x ) => { if (x < 0) ttl++; });
mdlValue = sum / ttl;
arr = arr.ToList().Select((x) => x < 0 ? (x + (int)mdlValue) : x).ToArray();

Console.Write("AFTER :");
arr.ToList().ForEach(x => Console.Write(x + " "));
userVaz вне форума Ответить с цитированием
Старый 04.05.2012, 19:10   #5
userVaz
Новичок
Джуниор
 
Регистрация: 04.05.2012
Сообщений: 5
По умолчанию

Reskov'a вариант конечно поэлегантнее будет )
userVaz вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Турбо ассемблер - построить массив путём сдвига исходного массива и умножить все элементы полученного массива на два Александр16 Помощь студентам 5 12.02.2012 20:30
Как обнулить элементы строки двумерного массива, содержащей наибольшее количество элементов одномерного массива griignat Помощь студентам 1 22.11.2011 20:04
Элементы матрицы. Все ненулевые элементы массива D(k) расположить в начале массива E(k) и подсчитать их к Вася Маклауд Помощь студентам 0 03.04.2011 17:21
Все отрицательные элементы массива А заменить на сумму, а положительные на полусумму предшествующих Lada05 Помощь студентам 1 27.10.2010 15:44
EXSEL (VBA) найти элемент наиболее близкий к среднему значению элементов массива Lady_Deluxe Помощь студентам 0 16.06.2009 13:45