Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 04.09.2014
Сообщений: 34
1

Нахождение общих элементов двух массивов

09.09.2014, 12:27. Показов 2845. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте .
Возникла проблема с нахождением общих элементов 2-х массивов:


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
string[] mas1 = new string[5];
            string[] mas2 = new string[5];
            string[] tot = new string[10];
 
            Console.WriteLine("Введите mas1:");
            for (int i = 0; i < 5; i++)
            {
                mas1[i] = Console.ReadLine();
            }
            Console.WriteLine("Введите mas2:");
            for (int i = 0; i < 5; i++)
            {
                mas2[i] = Console.ReadLine();
            }
 
            int k=0;
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
 
                    if (mas1[i] == mas2[j])
                    {
                        tot[k] = mas1[i];
                        k++;
                        Console.WriteLine("tot:" + tot[k]);
                    }
                
                }
            }
Не получается вывести общие элементы:
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.09.2014, 12:27
Ответы с готовыми решениями:

Сумма элементов двух массивов
в этом примере пересечение, а как сделать сумму элементов двух массивов? напр. а: 2 1 6 b: 1 3...

Создание массива с суммой элементов двух других массивов
Даны два двумерных массива одинаковой размерности. Создать третий массив той же размерности, каждый...

Создать массив, содержащий суммы соответствующих элементов двух исходных массивов
Недавно начал изучать C# и вот наткнулся на проблему... Массив не хочет строится из двух данных!!! ...

В элементы третьего массива записать сумму соответствующих элементов первых двух массивов
Объявить три массива. Первые два заполнить случайными значениями от 10 до 30. В элементы третьего...

7
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
09.09.2014, 12:35 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.Linq;
 
namespace ConsoleApplication5
{
    class Program
    {
        static void Main( string[] args )
        {
            int[] a = { 1, 2, 3 };
            int[] b = { 2, 3, 4 };
 
            Console.WriteLine( string.Join( " ", a.Intersect( b ) ) );
        }
    }
}
0
13 / 13 / 10
Регистрация: 09.09.2014
Сообщений: 41
09.09.2014, 12:36 3
C#
1
2
k++;
Console.WriteLine("tot:" + tot[k]);
Поменять местами нужно.
0
0 / 0 / 0
Регистрация: 04.09.2014
Сообщений: 34
09.09.2014, 12:39  [ТС] 4
Интересный вариант . А можно использовать эту конструкцию , но только сохранить всё это в 3-ий массив?
0
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
09.09.2014, 12:42 5
GNA, да, конечно:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Linq;
 
namespace ConsoleApplication5
{
    class Program
    {
        static void Main( string[] args )
        {
            int[] a = { 1, 2, 3 };
            int[] b = { 2, 3, 4 };
 
            int[] c = a.Intersect( b ).ToArray();
 
            Console.WriteLine( string.Join( " ", c ) );
        }
    }
}
1
0 / 0 / 0
Регистрация: 04.09.2014
Сообщений: 34
09.09.2014, 12:52  [ТС] 6
Спасибо большое!

Добавлено через 2 минуты
А эти функции только к массивам можно применять ? Нельзя , например , к массивам структур?

Добавлено через 2 минуты
Если у меня есть такие данные:
C#
1
2
3
4
5
6
7
8
9
10
struct Str1{
 
public int i;
public string info;
 
}
Str1 [] str1=new St1r[5];
Str2 [] str2=new Str2[5];
 
//вводятся данные с клавиатуры
И мне нужно найти общие поля info этих массивов структур

Добавлено через 2 минуты
C#
1
2
 Console.WriteLine("Общие элементы:");
Console.WriteLine(string.Join(" ", str1.info.Intersect(str2.info)));
0
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
09.09.2014, 13:06 7
GNA,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.Linq;
 
namespace ConsoleApplication5
{
    class Program
    {
        struct Str1
        {
            public int i;
                public string info;
 
            public override bool Equals( object obj )
            {
                return ((Str1)obj).info == this.info;
            }
 
            public override string ToString()
            {
                return info;
            }
        }
 
        static void Main( string[] args )
        {
            Str1[] a = { new Str1 { info = "1" }, new Str1 { info = "2" }, new Str1 { info = "3" } };
            Str1[] b = { new Str1 { info = "2" }, new Str1 { info = "3" }, new Str1 { info = "4" } };
 
            Console.WriteLine( string.Join( " ", b.Intersect( a ) ) );
        }
    }
}
0
0 / 0 / 0
Регистрация: 04.09.2014
Сообщений: 34
09.09.2014, 13:55  [ТС] 8
Спасибо за ответ , так помогло. Из-за невнимательности ошибся.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
string[] mas1 = new string[5];
            string[] mas2 = new string[5];
            string[] tot = new string[10];
 
            Console.WriteLine("Введите mas1:");
            for (int i = 0; i < 5; i++)
            {
                mas1[i] = Console.ReadLine();
            }
            Console.WriteLine("Введите mas2:");
            for (int i = 0; i < 5; i++)
            {
                mas2[i] = Console.ReadLine();
            }
 
            int k=0;
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
 
                    if (mas1[i] == mas2[j])
                    {
                        k++;
                        tot[k] = mas1[i];
                        
                        Console.WriteLine("tot:" + tot[k]);
                    }
                
                }
            }
А можно у Вас попросить помочь с одним вопросом : вот я нашёл общие элементы . А вот как вывести потом массив1 и массив2 уже без этих общих элементов?
0
09.09.2014, 13:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.09.2014, 13:55
Помогаю со студенческими работами здесь

В элементы третьего массива записать сумму соответствующих элементов первых двух массивов
Объявить три массива. Первые два заполнить случайными значениями от 10 до 30. В элементы третьего...

Дано два массива одинаковой длины по 10 элементов. Создать третий массив который будет отображать сумму первых двух массивов(для одномерного и двумер
Дано два массива одинаковой длины по 10 элементов. Создать третий массив который будет отображать...

Нахождение общих элементов двух массивов
Дали задачу на курсовую, а я в С++ вообще балда, помогите задачку написать, плз! Условие такое:...

Найти НОД общих элементов двух массивов
Как найти НОД(наибольший общий делитель) общих элементов массивов .Благодарю за ответ ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru