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

Тема в разделе ".NET", создана пользователем Antonik, 22 янв 2008.

  1. Antonik

    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, значит изменения есть, но как их отловить и вывести?
    Оч. жду помощи.
     
  2. Pasha

    Pasha Гость

    Если писать влоб, то примерно так:
    Код (Text):
    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();
     
  3. Antonik

    Antonik Гость

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

Поделиться этой страницей