Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

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

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

Код:
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
Репутация: 76
По умолчанию

Код:
           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
Репутация: 10
По умолчанию

мой вариант

Код:
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
Репутация: 10
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Турбо ассемблер - построить массив путём сдвига исходного массива и умножить все элементы полученного массива на два Александр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


09:39.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.