Для удаления повторяющихся слов из предложения на языке программирования C, можно использовать следующий алгоритм:
1. Считать входное предложение с помощью функций ввода в C, таких как scanf или fgets, и сохранить его в строковую переменную.
2. Инициализировать пустую строку, которая будет содержать отфильтрованное предложение без повторяющихся слов.
3. Создать массив из строк, в котором будут храниться все слова в предложении. Максимальный размер массива должен быть таким, чтобы в него помещались все слова предложения.
4. Разбить предложение на отдельные слова. Для этого можно использовать функцию strtok, которая разделяет строку на слова, используя заданный разделитель, в данном случае пробел.
5. Проверять каждое слово, сравнивая его со всеми предыдущими словами в массиве. Если слово уже присутствует в массиве, то оно является повторяющимся, и его необходимо пропустить. Если же слово встречается впервые, оно добавляется в массив и в конечную строку.
6. Вывести отфильтрованное предложение без повторяющихся слов.
Вот пример реализации данного алгоритма на языке C:
#include <stdio.h> #include <string.h> #define MAX_WORDS 100 // Максимальное количество слов в предложении #define MAX_WORD_LENGTH 50 // Максимальная длина слова int main() { char sentence[MAX_WORD_LENGTH]; char filtered_sentence[MAX_WORD_LENGTH]; char words[MAX_WORDS][MAX_WORD_LENGTH]; int count = 0; printf("Введите предложение: "); fgets(sentence, sizeof(sentence), stdin); char* word = strtok(sentence, " "); while (word != NULL) { int duplicate = 0; // Проверяем, есть ли текущее слово в массиве for (int i = 0; i < count; i++) { if (strcmp(word, words[i]) == 0) { duplicate = 1; break; } } // Если слово является уникальным, добавляем его в массив и конечную строку if (!duplicate) { strcpy(words[count], word); strcat(filtered_sentence, word); strcat(filtered_sentence, " "); count++; } word = strtok(NULL, " "); } // Выводим отфильтрованное предложение printf("Предложение без повторяющихся слов: %sn", filtered_sentence); return 0; }
Этот пример реализует алгоритм удаления повторяющихся слов в предложении на языке C. Он считывает предложение с помощью функции fgets, разбивает его на слова с помощью функции strtok, проверяет каждое слово на наличие в массиве с помощью функции strcmp и выводит конечное предложение без повторяющихся слов.