• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

помогите с прогой, видимо матем. задачка

  • Автор темы Antonik
  • Дата начала
A

Antonik

C#, Express Studio 2005

Добрый день!
Есть такая задачка:
2 массива.
1-ый фиксированный и известный на (n-1) элементов, нулевой не используется, значения разные, не повторяются:
string[] fix = new string[n];
элементы массива вида:
fix[1] = "первый текстовый элемент";
fix[2] = "второй текстовый элемент";
...
fix[n] = "энный текстовый элемент";

2-ой массив не известный, некоторые его значения совпадают со значениями элементов массива fix и могут повторяться, количество элементов известно и равно (m-1), нулевой не используется:
string[] nofix = new string[m];
элементы массива вида:
nofix[1] = "первый текстовый элемент";
nofix[2] = "второй текстовый элемент";
nofix[3] = "первый текстовый элемент";
nofix[4] = "восьмой текстовый элемент";
nofix[5] = "четвертый текстовый элемент";
...
nofix[m-1] = "первый текстовый элемент";
nofix[m] = "эмный текстовый элемент";
в m элементов может быть как больше так и меньше чем в n

задача:
сравнить первый массив со вторым, выдернуть из 2-го значения, которых нет в первом, сделать чтобы их было по 1 экземпляру и записать в третий массив S.

for (i = 1; i <= n; i++)
for (i1 = 1; i1 <= m - 1; i1++)
{
if (nofix != fix[i1])
{

}
}

...

кароче вообще не могу понять как подойти к этой задачке ибо при сравнении значении из всего массива неизвестно сколько совпадет. Пробовал сравнивать типа со счетчиком, и если он не равен числу элементов массива fix, значит изменения есть, но как их отловить и вывести?
Оч. жду помощи.
 
P

Pasha

Если писать влоб, то примерно так:
Код:
string[] fix = { "", "a", "b", "c", "d" };
string[] nofix = { "", "a", "c", "d", "a", "a", "e", "e", "q" };
List<string> sList = new List<string>(nofix.Length);

for (int i = 1; i < nofix.Length; i++)
{ 
string elementToCheck = nofix[i];
if (Array.IndexOf(fix, elementToCheck) == -1 && !sList.Contains(elementToCheck))
{
sList.Add(elementToCheck);
}
}

string[] s = sList.ToArray();
 
A

Antonik

Огромаднейшее спасибо!
Когда я научусь так быстро и компактно выражаться в коде :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!