## Задача.
**"Дано речення. Вивести різні його слова"**
Наче як проста задача - бо мало слів в умові, та в неї досить не просте рішення(як для починаючих).
Я люблю знаходити **різні** розв'язки, як у математиці так і в програмуванні. То ж і тут наведу декілька.
Щоб краще зрозуміти як розв'язати задачу трохи спростимо її, ще трохи.
Нехай це буде **"масив чисел, і треба вивести різні числа"**, тобто не виводити однакові.
Якщо трішки подумати, то треба проглядати масив двома циклами.
Преший цикл бере до розгляду послідовно кожен елемент з масиву, а інший цикл - шукає чи є ще такий у масиві. І якщо не знаходить - то виводить його.
Для з'ясування факту "знайшов-не знайшов" використовувоємо логічну змінну.
exist=0; припускаємо що елемент що зараз розглядаємо - єдиний, і такого більше в масиві нема(крім його самого)
Проглядаємо іншим циклом масив - і якщо знаходимо встановлюємо "флажок" exist=1;
як ознаку того що такий елемент не єдиний і його виводити не треба. Наступні елементи для цього елемента можна далі не розглядати. break;
``` C
#include <stdio.h>
#include <stdlib.h>
int main()
{
const int N=15; // розмір массиву
int i,j; // дві змінні для циклів
int a[N]; // сам массив чисел
int exist; // логічна змінна, існує чи не існує ще такий елемент у масиві
//заповнимо масив випадковими числами
for(i=0;i<N;i++)
a[i]=random()%20;
//виведемо його весь
for(i=0;i<N;i++)
printf("%3d",a[i]);
//відокремимо від іншого виводу
printf("\n------------\n");
for(i=0;i<N;i++)
{
exist=0;//припустимо що такого елементу (a[i]) в масиві більш нема
for(j=0;j<N;j++)
if(a[i]==a[j] && i!=j) // а якщо знайдемо
{exist=1;
break;} // то змінну зробимо =1 тобто є ще один такий
// далі можна не перевіряти і перевати цей,
// внутрішній цикл - break;
//пошук завершено
//і тепер в залежності від змінної exist
// виводимо (exist=0) чи не виводимо (exist=1) елементу (a[i])
if(exist==0)
printf("%3d",a[i]);
}
return 0;
}
```
Задача ж зі словами така сама, алгоритмічно.
Лиш елементи не просто числа, а слова.
Тобто треба оперувати словами, якось знаходити *перше_слово*, *друге_слово*, ...
та мати змогу їх порівняти, рівні не рівні. *(про це іншим разом)*