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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2010, 22:53   #1
nadminka
 
Регистрация: 20.04.2010
Сообщений: 7
По умолчанию Сортировка элементов массива по убыванию

дали мне задание : Преобразовать массив X по следующему правилу: все отрицательные элементы массива перенести в начало, а все остальные – в конец, сохраняя исходное взаимное расположение, как среди отрицательных, так и среди остальных элементов.
вроде все сделала правильно , но только не сохраняется взаимное расположение

{//Ввод массива
Console.Write("ВВедите размерновсть массива n=");
int n = Convert.ToInt32(Console.ReadLine()) ;
int[] mas = new int[n];
for (int i = 0; i < n; i++)
{
Console.Write("введите элемент массива mas[{0}]=", i);
mas[i] = Convert.ToInt32(Console.ReadLine()) ;
}
//Сортировака массива
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - 1; j++)
{
if (mas[j] > mas[j + 1])
{
int tmp = mas[j];
mas[j] = mas[j + 1];
mas[j + 1] = tmp;
}
}
}
//вывод массива на экран
for (int i = 0; i < n; i++)
{
Console.WriteLine("элемент массива mas[{0}]={1}", i, mas[i]);
}
System.Console.ReadKey();

}
nadminka вне форума Ответить с цитированием
Старый 18.05.2010, 23:08   #2
Namolem
Oo
Форумчанин
 
Аватар для Namolem
 
Регистрация: 10.10.2009
Сообщений: 350
По умолчанию

Код:
            Random rand = new Random(System.DateTime.Now.Millisecond);
            int i;
            int n = 5 + rand.Next() % 16;
            Console.WriteLine("n=" + n);
            int[] mas = new int[n];
            for (i=0;i<n;i++)
            {
                mas[i] = rand.Next() % 30 - 15;
                Console.Write(mas[i] + " ");
            }
            Console.Write(Environment.NewLine);
            List<int> l = new List<int>();
            foreach (int elem in mas)
                if (elem < 0)
                    l.Add(elem);
            foreach (int elem in mas)
                if (elem >= 0)
                    l.Add(elem);
            mas = l.ToArray();
            foreach (int elem in mas)
                Console.Write(elem + " ");
            Console.ReadKey();
мне кажется проще сделать из массива список. Сначала добавить отрицательные элементы, потом положительные
Namolem вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сортировка элементов массива Dr@gon Помощь студентам 2 03.03.2010 19:49
сортировка стоблцов матрицы по убыванию сумм их элементов rev1ver Паскаль, Turbo Pascal, PascalABC.NET 6 14.01.2009 19:18
1. Сортировка Шелла по убыванию 2. Сортировка вставками по убыванию Arkuz Помощь студентам 1 25.09.2007 17:16