Помогите найти ошибку. Элементы, которые присутствуют в массиве А, но отсутствуют в массиве В - C#
Формулировка задачи:
Доброго времени суток. Неверно выводится массив С - заносятся уникальные числа массива А и числа которые есть в А и В, а задание: элементы, которые присутствуют в массиве А, но отсутствуют в массиве В, сортировка пузырьком. Помогите пожалуйста найти и исправить ошибку
сам код:
namespace laba3 { class Program { static void Main(string[] args) { int M, N; // Инициализируем переменные M и N (размеры массивов A и B) Console.WriteLine("Введи размер массива A"); M = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Введи размер массива B"); N = Convert.ToInt32(Console.ReadLine()); Random r = new Random(); // Инициализируем переменную r (задаем случайное число) double t1 = Environment.TickCount; // Замеряем начало работы int[] A = new int[M]; // Инициализируем массив A размером M for (int i = 0; i < M; i++)// Заполняем массив случайными числами в диапазоне от 0 до 100 A[i] = r.Next(0, 100); int buf1; /// Сортируем массив A for (int i = 0; i < M - 1; i++) { for (int j = i + 1; j < M; j++) { if (A[i] > A[j]) { buf1 = A[i]; A[i] = A[j]; A[j] = buf1; } } } Console.WriteLine("Исходный массив A"); // Выводим массив A на экран for (int i = 0; i < M; i++) Console.Write(" " + A[i]); Console.WriteLine(" "); int[] B = new int[N]; // Инициализируем массив B размером N for (int i = 0; i < N; i++) // Заполняем массив случайными числами в диапазоне от 0 до 100 B[i] = r.Next(0, 100); int buf2; // Сортируем массив B for (int i = 0; i < N - 1; i++) { for (int j = i + 1; j < N; j++) { if (B[i] > B[j]) { buf2 = B[i]; B[i] = B[j]; B[j] = buf2; } } } Console.WriteLine("Исходный массив B"); // Выводим массив B на экран for (int i = 0; i < N; i++) Console.Write(" " + B[i]); Console.WriteLine(" "); int s = 0; // Инициализируем переменную s, равную номеру элемента в массиве C int[] C = new int[A.Length]; for (int i = 0; i < M; i++) // Сравниваем элементы массивов A и B, ищем элементы, имеющиеся только в А { for (int j = 0; j < N; j++) { if (A[i] != B[j]) { int count = 0; for (int l = 0; l < s + 1; l++) { if (A[i] == C[l]) count++; else continue; } if (A[i] == 0) count--; if (count == 0) { C[s] = A[i]; s++; break; } } } } if (s == 0) Console.WriteLine("Уникальные числа в массиве А отсутствуют"); else { Console.WriteLine("Числа которые есть только в А"); for (int i = 0; i < s; i++) { Console.Write(" " + C[i]); } Console.WriteLine(" "); double t2 = Environment.TickCount; // Замеряем конец работы Console.WriteLine("Продолжительность работы программы = {0} сек. ", (t2 - t1) / 1000); // Выводим продолжительность работы на экран } Console.ReadKey(true); } } }
Решение задачи: «Помогите найти ошибку. Элементы, которые присутствуют в массиве А, но отсутствуют в массиве В»
textual
Листинг программы
class Program { public static void BubbleSort(ref int[] mas) { int buf = 0; for (int i = 0; i < mas.Length - 1; i++) { for (int j = i + 1; j < mas.Length; j++) { if (mas[i] > mas[j]) { buf = mas[i]; mas[i] = mas[j]; mas[j] = buf; } } } } public static void View(int[] mas) { for (int i = 0; i < mas.Length; i++) { Console.Write(mas[i] + " "); } Console.WriteLine(); } public static void Exist(int[] mas, int[] mas1, ref int[] res) { int buf = 0; for (int i = 0; i < mas.Length; i++) { if (!mas1.Contains(mas[i])) { res[buf] = mas[i]; buf++; } } } static void Main(string[] args) { Random rand = new Random(); Console.Write("Введите размерность массива: "); int count = int.Parse(Console.ReadLine()); int[] A = new int[count]; int[] B = new int[count]; int[] C = new int[count]; for (int i = 0; i < count; i++) { A[i] = rand.Next(0, 100); B[i] = rand.Next(0, 100); } Console.WriteLine("Массив А:"); View(A); Console.WriteLine("Массив B:"); View(B); BubbleSort(ref A); BubbleSort(ref B); Console.WriteLine("Массив А:"); View(A); Console.WriteLine("Массив B:"); View(B); Exist(A, B, ref C); Console.WriteLine("Массив C:"); View(C); Console.ReadKey(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д