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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2016, 21:51   #1
Кодер2
Пользователь
 
Регистрация: 02.11.2016
Сообщений: 34
По умолчанию Слияние двух массивов введённых в консоли после их сортировки по убыванию и возрастанию

Даны два массива. Массив А состоит из N элементов и отсортирован по возрастанию. Массив В состоит из М элементов и отсортирован по убыванию. Разработать программу для слияния этих массивов в отсортированный по убыванию массив С, не содержащий одинаковых элементов.
Сначало после ввода массивов в консоли нужно отсортировать их, и после этого выполнить слияние не содержащее одинаковых элементов.
Кодер2 вне форума Ответить с цитированием
Старый 02.11.2016, 23:19   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
public class Program
    {
        public static void Main(string[] args)
        {
            int sizeA = Int32.Parse(Console.ReadLine());
            int sizeB = Int32.Parse(Console.ReadLine());
            Random rnd = new Random();
            int[] a = new int[sizeA];
            int[] b = new int[sizeB];
            int[] c = new int[sizeA+sizeB];
            int toc = 0;
            Console.WriteLine("A до сортировки");
            for(int i=0;i<a.Length;i++) {a[i] = rnd.Next(1,20);Console.Write(a[i]+" ");}
            Console.WriteLine();
            Array.Sort(a);
            Console.WriteLine("A после сортировки");
            for(int i=0;i<a.Length;i++) Console.Write(a[i]+" ");
            Console.WriteLine();
            Console.WriteLine("В до сортировки");
            for(int i=0;i<b.Length;i++) {b[i] = rnd.Next(1,20);Console.Write(b[i]+" ");}
            Console.WriteLine();
            Array.Sort(b);
            Array.Reverse(b);
            Console.WriteLine("В после сортировки");
            for(int i=0;i<b.Length;i++) Console.Write(b[i]+" ");
            Console.WriteLine("\n");
            int ap = sizeA-1; int bp = 0;
            while(ap >= 0 && bp <= sizeB-1)
            {
                if(a[ap] > b[bp])
                {
                    c[toc]=a[ap];
                    toc++;
                    ap--;
                }
                else
                {
                    c[toc]=b[bp];
                    toc++;
                    bp++;
                }
                if(toc > 1 && c[toc-2]==c[toc-1]) toc--;
            }
            for(int i=ap;i>=0;i--)
            {
                c[toc]=a[i];
                toc++;
                if(toc > 1 && c[toc-2]==c[toc-1]) toc--;
            }
            for(int i=bp;i<sizeB;i++)
            {
                c[toc]=b[i];
                toc++;
                if(toc > 1 && c[toc-2]==c[toc-1]) toc--;
            }
            Console.WriteLine("С после объединения");
            for(int i=0;i<toc;i++)
                Console.Write(c[i]+" ");
        }
    }
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Слияние двух массивов в Delphi sauron99 Помощь студентам 17 03.04.2016 09:37
Выполнить слияние упорядоченного по возрастанию A (m) и неупорядоченного B (n) массивов (n << m) в ??упорядоченный по неубывания м Валентин77 Общие вопросы C/C++ 10 10.12.2013 18:56
Из двух упорядоченных по возрастанию массивов, получить третий, упорядоченный по возрастанию.(в обычном варианте и через bufalo C# (си шарп) 4 17.10.2011 14:52
Слияние двух массивов Anubys Общие вопросы C/C++ 5 28.03.2011 10:07
Слияние двух массивов Anubys Помощь студентам 0 26.03.2011 16:12