Поместить уникальные символы из одного массива в другой - C (СИ)
Формулировка задачи:
Помогите, пожалуйста, с логикой решения.
Данный кусок кода должен копировать уникальные символы из Puzzle в Letters
Результат выполнения программы на скрине ниже. Первый символ действительно не повторяется, однако с последующими проблемы.
Проблема, как мне видится, в else?..
Листинг программы
- 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
- }
- }
- }
Решение задачи: «Поместить уникальные символы из одного массива в другой»
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++;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д