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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2013, 22:45   #1
FroZko
Пользователь
 
Регистрация: 11.11.2012
Сообщений: 23
По умолчанию Расположить элементы массива в порядке:отрицательные, положительные, нули

Здравствуйте, дорогие эксперты. Собственно говоря столкнулся с такой задачей: расположить элементы массива в следующем порядке: сначала отрицательные, затем положительные, затем 0. Получилось расположить сначала отрицательные, затем нули, а потом положительные, а вот как по условия нужно додумать не могу. Подскажите пожалуйста, или подтолкните на мысль!
Код:
Console.WriteLine("Введите число элементов массива A1");
            int size = Convert.ToInt32(Console.ReadLine()); 
            double[] A1 = new double[size];
            Console.WriteLine("Введите элементы массива A1");
            for (int j = 0; j < size; j++) 
                A1[j] = double.Parse(Console.ReadLine());
            Console.WriteLine("Для вывода измененного массива нажмите Enter... ");
            Console.ReadLine();
 
            double temp;
            
               for (int i = 0; i <= size - 2; i++)
                {
                    if (A1[i] >= A1[i + 1])
                    {
                        temp = A1[i+1];
                        A1[i+1] = A1[i];
                        A1[i] = temp;
                        
                    }
                }
 
            for (int i = 0; i < size; i++)
            {
                Console.Write(A1[i] + " ");
                Console.WriteLine();
            }
            Console.Write("Press Enter...");
            Console.ReadLine();
FroZko вне форума Ответить с цитированием
Старый 28.03.2013, 08:31   #2
FroZko
Пользователь
 
Регистрация: 11.11.2012
Сообщений: 23
По умолчанию

немного поковырялся и добился того, что бы 0 был на первом месте, а на последнем добиться не могу.
Код:
for (int i = 0; i <= size-2; i++)
                {
                    for (int j = 0; j <= i; j++)
                    if (A1[i] >= A1[i + 1])
                    {
                        temp = A1[i+1];
                        A1[i+1] = A1[i];
                        A1[i] = temp;
                        if (A1[i] == 0)
                        {
                            A1[j] = A1[i];
                            A1[i] = 0;
                        }
                        
                    }
                }
FroZko вне форума Ответить с цитированием
Старый 28.03.2013, 11:08   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,876
По умолчанию

Код:
private string MakeSortedZeroesLastArray(int size, int low, int high)
{
    Random rand = new Random();
    double[] A1 = new double[size];
    List<double> a = A1.ToList<double>();
    a = a.Select(b => b = rand.Next(high - low) + low).ToList<double>();
    a = a.Select(b => b = b == 0 ? double.PositiveInfinity : b).ToList<double>();
    a.Sort();
    a = a.Select(b => b = double.IsPositiveInfinity(b) ? 0 : b).ToList<double>();
        string s = "";
    a.ForEach(b => s = s + b.ToString() + " ");
    return s;
}
private void button1_Click(object sender, EventArgs e)
{
    MessageBox.Show(MakeSortedZeroesLastArray(30, -5, 5));
}
В целом идея должна быть понятна - в исходном массиве заменяем нули на бесконечность, сортируем, заменяем обратно, выводим.

Последний раз редактировалось phomm; 28.03.2013 в 18:44. Причина: чуть подшаманил код
phomm вне форума Ответить с цитированием
Старый 28.03.2013, 15:20   #4
FroZko
Пользователь
 
Регистрация: 11.11.2012
Сообщений: 23
По умолчанию

да, мысль понял. переделал в консольное приложение, Все норм. Спасибо большое!!
FroZko вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
составить программу расположения элементов массива в следующем порядке - положительные, отрицательные и нулевые Лина55 Помощь студентам 10 28.03.2013 09:26
Элементы массива X расположить в обратном порядке ( Delphi ) alex150394 Помощь студентам 5 19.12.2012 10:19
все отрицательные числа и нули, затем положительные максим2012 Паскаль, Turbo Pascal, PascalABC.NET 8 25.10.2012 14:26
Расположить элементы массива в порядке возрастания Klik_1602 Помощь студентам 2 04.01.2011 14:59
Все отрицательные элементы массива А заменить на сумму, а положительные на полусумму предшествующих Lada05 Помощь студентам 1 27.10.2010 15:44