---
# System prepended metadata

title: Untitled

---


## Задача.
**"Дано речення. Вивести різні його слова"**

Наче як проста задача - бо мало слів в умові, та в неї досить не просте рішення(як для починаючих).
Я люблю знаходити **різні** розв'язки, як у математиці так і в програмуванні. То ж і тут наведу декілька.

Щоб краще зрозуміти як розв'язати задачу трохи спростимо її, ще трохи.

Нехай це буде **"масив чисел, і треба вивести різні числа"**, тобто не виводити однакові.

Якщо трішки подумати, то треба проглядати масив двома циклами.
Преший цикл бере до розгляду послідовно кожен елемент з масиву, а інший цикл - шукає чи є ще такий у масиві. І якщо не знаходить - то виводить його.

Для з'ясування факту "знайшов-не знайшов" використовувоємо логічну змінну.
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;
}

```

Задача ж зі словами така сама, алгоритмічно.
Лиш елементи не просто числа, а слова.
Тобто треба оперувати словами, якось знаходити *перше_слово*, *друге_слово*, ...
та мати змогу їх порівняти, рівні не рівні. *(про це іншим разом)*


