Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# для начинающих

Войти
Регистрация
Восстановить пароль
 
Krik294
0 / 0 / 0
Регистрация: 01.04.2013
Сообщений: 19
#1

Найти пересечение двух множеств и вывести данное пересечение и кол-во элементов в нем - C#

14.03.2014, 08:44. Просмотров 1056. Ответов 1
Метки нет (Все метки)

Здравствуйте, помогите, пожалуйста, дорешать задачу.
Условие: найти пересечение двух множеств и вывести данное пересечение и кол-во элементов в нем.
Задача почти решена, не получается только при выводе пересечения кое-что: если в обоих массивах есть нули, то и надо чтобы программа этот 0 тоже выводила как один из элементов. А сейчас у меня выводит все кроме 0. ( при этом надо чтобы лишние нули, когда элементы при переборе не совпадают, не выводились как и сейчас).
Заранее спасибо.
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
using System;
 
class Program
{
    static void Main(string[] args)
    {
       
        int i, j, k, a, b, c = 0;
        bool flag;
        int min = 0;
        Random rand = new Random();
        Console.Write("Введите количество элементов массива A=");
        a = Convert.ToInt32(Console.ReadLine());
        Console.Write("Введите количество элементов массива B=");
        b = Convert.ToInt32(Console.ReadLine());
        int[] A = new int[a];
        int[] B = new int[b];
 
        Console.WriteLine("Введите данные в множество A");
        for (i = 0; i < a; i++)
        {
            Console.Write("A[{0}]=", i);
            A[i] = Convert.ToInt32(Console.ReadLine());
        }
        Console.WriteLine("Введите данные в множество B");
        for (j = 0; j < b; j++)
        {
            Console.Write("B[{0}]=", j);
            B[j] = Convert.ToInt32(Console.ReadLine());
        }
 
       if (a > b)
           c = a;
      else
          c = b;
        int[] C = new int[c];
        Console.WriteLine("Множество А:");
        for (i = 0; i < a; i++)
            Console.Write(A[i] + " ");
        Console.WriteLine("\n\nМножество B:");
 
        for (j = 0;j  < b; j++)
            Console.Write(B[j] + " ");
 
        for (i = 0; i < a; i++)
        {
            do
            {
                flag = false;
                for (k = i; k < a - 1; k++)
                    if (A[k + 1] < A[k])
                    {
                        min = A[k + 1];
                        A[k + 1] = A[k];
                        A[k] = min;
                        flag = false;
                    }
            }
            while (flag);
        }
 
        for (j = 0; j< b ; j++)
        {
            do
            {
                flag = false;
                for (k = j; k < b - 1; k++)
                    if (B[k + 1] < B[k])
                    {
                        min = B[k + 1];
                        B[k + 1] = B[k];
                        B[k] = min;
                        flag = false;
                    }
            }
            while (flag);
        }
 
      
        int kol = 0;
        for (i = 0; i <= a - 1; i++)
        {
            for (j = 0; j <= b - 1; j++)
            {
 
                if (A[i] == B[j])
                    kol++;
            }
        }
 
        Console.WriteLine("\n\n\n\nКоличество элементов множества пересечения = {0}", kol);
       
        do
        {
                for (i = 0; i < a; i++)
                {
                    for (j = 0; j < b; j++)
                    {
                        if (A[i] == B[j])
                        {
                            C[i] = A[i];
                        }
                            
                        
                    }
                }
            
        }
        while (i <= kol);
       
 
        if (kol == 0)
            Console.WriteLine("Пересечений не обнаружено");
        else
        {
            Console.WriteLine("Множество пересечения:");
            
               for (i = 0; i < c; i++)
                
                {
                      if (C[i] == 0)
                         C[i] = ' ';
                    else Console.Write(C[i] + " ");
                    
                }
            
        }
      
                Console.ReadLine();
    }
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2014, 08:44
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти пересечение двух множеств и вывести данное пересечение и кол-во элементов в нем (C#):

Найти пересечение двух множеств - C#
В C# найти пересечение множеств, которые вводятся рендомно, и из этого пересечения вывести на экран только четные! Желательно в форме...

Объединение, пересечение и разность двух множеств - C#
Помогите пожалуйста сделать таки операции над множеством как объединение, пересечение и разность Вот часть моего кода using System;...

Найти пересечение множеств - C#
Есть: List&lt;long&gt; list1 и List&lt;long&gt; list2. Надо сделать список, где будут общие элементы, которые входят как в 1-й, так и во 2-й. ...

Найти пересечение двух окружностей - C#
Объявить класс Circle, окружность, с открытыми свойствами двойной точности X и Y (координаты центра), R (радиус). В классе должен быть...

Объединение, пересечение, разность множеств - C#
К сожалению, абсолютно ничего не понимаю в программировании. Если кто-то может, помогите пожалуйста. Для заданных множеств A= и...

Объединение, пересечение и отрицание А и В множеств - C#
Здравствуйте, помогите пожалуйста написать программу работы с числовыми множествами(объединение, пересечение и отрицание А и В множеств)

1
tezaurismosis
Администратор
Эксперт .NET
8218 / 3697 / 505
Регистрация: 17.04.2012
Сообщений: 8,379
Записей в блоге: 14
14.03.2014, 08:57 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
FAQ для студентов или школьников (спойлер "Находит пересечение множеств, представленных двумя последовательностями")
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2014, 08:57
Привет! Вот еще темы с ответами:

Массив: Найти пересечение по элементам для двух входящих списков... - C#
Добрый день. Не могу понять как реализовать задачу. Найти пересечение по элементам для двух входящих списков и сравнить...

Пересечение двух многоугольников - C#
Есть координаты двух многоугольников. Нужно узнать: пересекаются они или нет. Есть ли библиотеки для этого: искал - ничего не нашёл. Или...

Пересечение двух объектов одного массива - C#
Вопрос собственно в заголовке темы. foreach(Block block in blocks) { block.BlockFunc(); ...

Найти Пересечение массивов - C#
C#. Даны два массива x ≤… ≤ x, y ≤ … ≤ y. Найти их «пересечение», т.е. массив z ≤… ≤ z, содержащий их общие элементы, причем, кратность...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru