Получить массив, являющийся «разностью» двух исходных - C#
Формулировка задачи:
Ввести два одномерных массива A(n), B(m), получить массив C(k), являющийся «разностью» исходных массивов.
Преобразовать массив таким образом, чтобы сначала располагались все элемен¬ты, равные нулю, а потом — все остальные (порядок следования элементов не менять).
Решение задачи: «Получить массив, являющийся «разностью» двух исходных»
textual
Листинг программы
static void Main(string[] args)
{
const int size = 5;
int[] first = new int[size];
int[] second = new int[size];
int[] third = new int[size];
for (int i = 0; i < size; i++)
{
Console.WriteLine("Enter first: ");
first[i] = int.Parse(Console.ReadLine());
}
for (int i = 0; i < size; i++)
{
Console.WriteLine("Enter second: ");
second[i] = int.Parse(Console.ReadLine());
}
// считаем разность
for (int i = 0; i < size; i++)
{
third[i] = first[i] - second[i];
}
int c = 0;
int[] temp = new int[5];
int[] fourth = new int[5];
int y = 0;
for(int i = 0; i < third.Length; i++)
{
if (third[i] == 0)
c++; // узнаем кол-во нулей
else
{
temp[y] = third[i]; // в этот массив добавляются элементы, которые != 0
y++;
}
}
int x = 0;
for (int j = 0; j < fourth.Length; j++)
{
if (j < c)
fourth[j] = 0; // нули ставятся в начало
else
{
fourth[j] = temp[x]; // когда нули закончились, то в этот массив добавляются элементы из массива temp
x++;
}
}
for (int i = 0; i < fourth.Length; i++)
{
Console.WriteLine(fourth[i]);
}
}