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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2021, 22:53   #1
Alexander333
Пользователь
 
Регистрация: 06.10.2020
Сообщений: 19
По умолчанию |C#| Как объединить два массива с исключением повторяющихся значений?

Помогите пожалуйста, никак не могу объединить два массива с исключением повторяющихся значений.

Вот код:

Код:

using System;
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.Threading.Tasks;  
using System.Diagnostics;
 
 
namespace Task
{
 
    class Program
    {
        
        
        static void Main(string[] args)
        {
            
            Console.WriteLine("Press <enter> to start...");
            Console.Read();
            Console.Clear();
            Menu();
        }
        
 
        public static void Menu()
        {
            
            char command;
            char choice;
            
            do
            {
                Console.WriteLine("Menu of commands");
                Console.WriteLine("1. Generate elements of a one-dimensional array. Concatenate two arrays.");
                Console.WriteLine("2. Find prime numbers and concatenate arrays.");
                Console.WriteLine("3. Exit.");
               
 
                command = (char)Console.Read(); 
                Console.ReadLine(); 
                Console.Clear();
                switch (command)
                {
                    case '1': 
                        do
                        {
                        Console.Write("Please, enter number of the elements in the array: ");
                        int n = Convert.ToInt32(Console.ReadLine());
                        int[] array = new int[n];
                    
                        Task1(array); 
                        
                        Console.Write("\nDo you want to continue? (y/n) : ");
                        choice = (char)Console.Read();
                        Console.Clear();
                        } while (choice != 'n');
            
                        break;
                    
                    case '2': Task2(); break;
                    
                    default: Console.WriteLine("Error! Wrong command! Please, repeat..."); Console.Clear(); break;
                }
                
            } while (command != '3');
        }
        
        
        static void arraygenerate(int[] mas)
        {
           
           
           Console.Write("Please, enter diapason from: ");
            int from = Convert.ToInt32(Console.ReadLine());
            
            Console.Write("Please, enter diapason to: ");
            int to = Convert.ToInt32(Console.ReadLine());
            
           
            
            Random aRand = new Random();
            
            for (int i = 0; i < mas.Length; i++)
            {
                mas[i] = aRand.Next(from, to);
            }
        }
        
        
        static void arrayprint(int[] mas)
        {
            
            for (int i = 0; i < mas.Length; i++)
                Console.Write( mas[i]+"  ");
            Console.WriteLine();
            
            
            //string value1 = mas.ToString(); 
        }
        
        
        static void arraysort(int[] mas)
        {
 
            int min, temp;
 
            for (int i = 0; i < mas.Length - 1; i++)
            {
                min = i;
 
                for (int j = i + 1; j < mas.Length; j++)
                {
                    if (mas[j] < mas[min])
                    {
                        min = j;
                    }
                }
        
                if (min != i)
                {
                    temp = mas[i];
                    mas[i] = mas[min];
                    mas[min] = temp;
                }
            }
          
          
            
        }
        
        
        
        static void prime_numbers()
        {
           Console.Write("Find prime numbers to: ");
            int n = Convert.ToInt32(Console.ReadLine());
            bool[] prime = new bool[n];
            int i, j;
            int count = 0; 
            
           
            
            for (i = 0; i < prime.Length; i++)
            {
                prime[i] = true;
            }
            
            for (i = 2; i * i < prime.Length; i++)
            {
                if (prime[i])
                {
                    for (j = 2 * i; j < prime.Length; j += i)
                    {
                        prime[j] = false;
                    }   
                }
            }
            
            
            
            
            // Виведення знайденного
            Console.WriteLine("All prime numbers to " + n + " : " );
            
            
            for (i = 2; i < prime.Length; i++)
            {
                if (prime[i])
                {
                    Console.Write(i + "\t ");
                    count++;
                }
            }
           
            
            Console.WriteLine("\n");
            Console.WriteLine("The amount of prime numbers: " + count);
            
            
            Console.WriteLine("\nPlease, press <enter> to continue");
            Console.ReadKey();
            
            //string value2 = prime.ToString(); 
 
        }
        
 
        
 
        
        static void Task1(int[] mas)
        {
                
                arraygenerate(mas);
 
                Console.WriteLine("Your generated array before sort");
                arrayprint(mas);
                arraysort(mas);
                
                Console.WriteLine("Your generated array after sort");
                arrayprint(mas);
 
                
        }
 
        static void Task2()
        {
            
            
            char choice;
 
            do
            {
                
                prime_numbers();
                Console.WriteLine("");
                
            //#############|объединение массивов|################
            
            /*
            var result = value1.Union(value2);
 
            foreach (string s in result)
            Console.WriteLine(s);
            */
            
            
                Console.Write("Do you want to continue? (y/n) : ");
                choice = (char)Console.Read();
                Console.Clear();
            } while (choice != 'n');
 
        }
        ///########################################################################///
        
 
        
    }
 
}
Alexander333 вне форума Ответить с цитированием
Старый 11.03.2021, 08:00   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Код:
int[] mas1 = new int[]{1,2,3};
int[] mas2 = new int[]{2,4,4};

// избавить от дубликатов
int[] mas3 = mas1.Concat(mas2).Distinct().ToArray();

// избавить от элементов имеющих дубликаты
int[] mas4 = mas1.Concat(mas2).GroupBy(s => s).Where(p => p.Count() == 1).Select(l => l.Key).ToArray();
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.

Последний раз редактировалось WorldMaster; 11.03.2021 в 08:05.
WorldMaster вне форума Ответить с цитированием
Старый 11.03.2021, 18:49   #3
Alexander333
Пользователь
 
Регистрация: 06.10.2020
Сообщений: 19
По умолчанию

WorldMaster, спасибо)
Alexander333 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединить два неупорядоченных массива в один, удалив совпадающие элементы. NikiLiiii Помощь студентам 1 09.01.2018 09:54
Паскаль.Даны два символьных массива,в каждом из которых нет повторяющихся элементов.Есть ли в массивах разные элементы? votsar Помощь студентам 15 27.11.2015 14:06
как можно объединить два массива в один новый? sqwerty Общие вопросы C/C++ 3 11.06.2009 23:50
Паскаль.Двумерные массивы,объединить два массива в один с сортировкой столбцов по возрастанию. valord Помощь студентам 6 02.06.2009 11:13
Как объединить два массива в один. TheWanderer Общие вопросы C/C++ 2 10.11.2008 00:15