Пользователь вводит длину массивов. Заполнение массивов случайными числами - C#
Формулировка задачи:
Помогите доработать задачу В путем отсеивание из задачи А задачу Б (Язык С#)
Пользователь вводит длину массивов. Заполнение массивов случайными числами.
А) Составить третий массив. Заполнить массив числами, являющимися объединением первых двух массивов. Без дублирования в результирующем массиве.
Пример:
1 массив: 123
2 массив: 345
3 массив: 12345
Б) Третий массив является пресечением множеств только тех элементов, которые есть и в первом и во втором массиве.
Пример:
1 массив: 123
2 массив: 345
3 массив: 3
В) Третий массив, все элементы которого есть во втором, но не встречаются не в первом, не во втором.
Пример:
1 массив: 123
2 массив: 345
3 массив: 1245 (Общее отсеивается)
А)
Б)
Так же если это не трудно, хотел бы сделать так, чтобы в первой задаче отсеивание повторных чисел не выводило на экран ничего (В моей задачи я сделал чтобы вместо них выводит нули)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace n4a
{
class Program
{
static void Main(string[] args)
{
int n;
string s = Console.ReadLine();
n = Convert.ToInt32(s);
int[] m = new int[n];
int[] a = new int[n];
int[] array = new int[n*2]; //В 2 раза больше чем исходные массивы
Random rnd = new Random();
Console.WriteLine("Массив 1:");
for (int i = 0; i < m.Length; i++) //Заполнение массива m
{
a[i] = rnd.Next(10);
m[i] = rnd.Next(10);
Console.WriteLine(m[i]);
}
Console.WriteLine("Массив 2:");
for (int i = 0; i < m.Length; i++) //Заполнение массива а
{
Console.WriteLine(a[i]);
}
for (int i = 0; i < m.Length; i++) //Запись массива "а" в конечный массив
{
array[i]= a[i];
}
int check = 0; // переменная для счетчика
for (int i = 0; i < m.Length; i++) //Для увеличения счетчика check
{
for (int j = 0; j < m.Length; j++) //Проверка совпадений в массиве а и m, если совпадение есть, в ячейку массива m записывается ноль
{
if (a[check] == m[j])
{
m[j] = 0;
}
}
check++;
}
int ground = 0; //счетчик для элементов массива m
for (int i = array.Length/2; i<array.Length;i++)
{
array[i] = m[ground]; // запись массива m в конечный массив
ground++;
}
Console.WriteLine("Объединённый массив:");
for (int i = 0; i < array.Length; i++)
{
Console.WriteLine(array[i]);
}
Console.ReadKey();
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace n4b
{
class Program
{
static void Main(string[] args)
{
int n;
string s = Console.ReadLine();
n = Convert.ToInt32(s);
int[] m = new int[n];
int[] a = new int[n];
int[] array = new int[n*2]; //В 2 раза больше чем исходные массивы
Random rnd = new Random();
Console.WriteLine("Массив 1:");
for (int i = 0; i < m.Length; i++) //Заполнение массива m
{
a[i] = rnd.Next(10);
m[i] = rnd.Next(10);
Console.WriteLine(m[i]);
}
Console.WriteLine("Массив 2:");
for (int i = 0; i < m.Length; i++) //Заполнение массива а
{
Console.WriteLine(a[i]);
}
int check = 0; // переменная для счетчика
for (int i = 0; i < m.Length; i++) //Для увеличения счетчика check
{
for (int j = 0; j < m.Length; j++) //Проверка совпадений в массиве а и m, если совпадение есть, в ячейку массива array записывается совпавшее число
{
if (a[check] == m[j])
{
array[i]= m[j];
}
}
check++;
}
Console.WriteLine("Общий массив:");
for (int i = 0; i < array.Length; i++)
{
Console.WriteLine(array[i]);
}
Console.ReadKey();
}
}
}Решение задачи: «Пользователь вводит длину массивов. Заполнение массивов случайными числами»
textual
Листинг программы
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using static System.Console;
namespace ConsoleApplication1
{
class Program
{
public static int [] CreateArray ()
{
Random random = new Random();
WriteLine("\nInput array size\n");
int n = int.Parse(ReadLine());
int[] myArray=new int[n];
for (int i = 0; i < n; i++)
{
myArray[i] = random.Next(10);
}
return myArray;
}
public static int[] ArrayUnion(int [] arr1, int [] arr2)
{
int n = arr1.Length + arr2.Length;
int[] unArray = new int[n];
for (int i = 0; i < arr1.Length; i++)
{
unArray[i] = arr1[i];
}
for (int i = 0; i < arr2.Length; i++)
{
unArray[i + arr1.Length] = arr2[i];
}
return unArray;
}
public static void ArrayPrint(int[] arr)
{
WriteLine("Print array:");
for(int i=0;i<arr.Length;i++)
{
Write("{0}\t",arr[i]);
}
}
public static int[] CrossArray(int[] arr1, int[] arr2)
{
int n = 0;
for (int i = 0; i < arr1.Length; i++)
{
for (int j = 0; j < arr2.Length; j++)
{
if(arr1[i]==arr2[j])
n++;
}
}
int[] arr3 = new int[n];
int z = 0;
for (int i = 0; i < arr1.Length; i++)
{
for (int j = 0; j < arr2.Length; j++)
{
if (arr1[i] == arr2[j])
{
arr3[z] = arr1[i];
z++;
}
}
}
return arr3;
}
public static ArrayList ArrayListCross (int[] arr1, int[] arr2)
{
int n = 0;
ArrayList arrayList=new ArrayList();
foreach (var i in arr1)
{
if (!arr2.Contains(i))
{
arrayList.Add(i);
}
}
foreach (var i in arr2)
{
arrayList.Add(i);
}
return arrayList;
}
public static ArrayList ArrayListCross1(int[] arr1, int[] arr2)
{
ArrayList arrayList = new ArrayList();
ArrayList arrayList1 = new ArrayList();
foreach (var i in arr1)
{
if (!arr2.Contains(i))
{
arrayList.Add(i);
}
}
foreach (var i in arr2)
{
if (!arr1.Contains(i))
{
arrayList.Add(i);
}
}
return arrayList;
}
static void Main(string[] args)// метод мейн, точка входа в программу
{
int []arr1 = CreateArray();
ArrayPrint(arr1);
int[] arr2 = CreateArray();
ArrayPrint(arr2);
int [] arrUnion=ArrayUnion(arr1, arr2);
WriteLine("\nUnited array:");
ArrayPrint(arrUnion);
WriteLine();
ArrayPrint(CrossArray(arr1,arr2));
WriteLine();
//CrossArrayUnion( arr1, arr2);
// ArrayPrint(CrossArrayUnion(arr1,arr2));
foreach (var i in ArrayListCross( arr1, arr2))
{
Write(i+"\t");
}
WriteLine();
WriteLine("New method");
foreach (var i in ArrayListCross1(arr1, arr2))
{
Write(i + "\t");
}
Console.ReadKey();
}
}
}