Поместить уникальные символы из одного массива в другой - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите, пожалуйста, с логикой решения. Данный кусок кода должен копировать уникальные символы из Puzzle в Letters
    int j, k, l;
        k = 1;
        Letters[0] = Puzzle[0];     //первый элемент перепишем
        for (l = 1; l < length; l++) {
            for (j = 0; j < length; j++) {
                if (Puzzle[l] == Letters[j])        //если l-тый элемент из Puzzle равен хоть одному из Letters, не делаем ничего
                    break;                  
                else {
                    Letters[k] = Puzzle[l];     //иначе присваиваем k-тому элементу Letters значение Puzzle[l]
                    k++;                        //увеличиваем k
                    
                }               
            }           
        }
Результат выполнения программы на скрине ниже. Первый символ действительно не повторяется, однако с последующими проблемы. Проблема, как мне видится, в else?..

Решение задачи: «Поместить уникальные символы из одного массива в другой»

textual
Листинг программы
int j, k, l;
k = 1;
Letters[0] = Puzzle[0];     //первый элемент перепишем
for (l = 1; l < length; l++)
{
    bool isFound = false;
    for (j = 0; j < length; j++)
    {
        if (Puzzle[l] == Letters[j])        //если l-тый элемент из Puzzle равен хоть одному из Letters, не делаем ничего
        {
            isFound = true;
            break;
        }
    }
    if (!isFound)
    {
        Letters[k] = Puzzle[l];     //иначе присваиваем k-тому элементу Letters значение Puzzle[l]
        k++;  
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы