Răspuns :
Răspuns:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int n;
cin >> n;
char cuvinte[100][20];
for (int i = 0; i < n; i++)
{
char cuvant[20];
cin >> cuvant;
strcpy(cuvinte[i], cuvant);
}
int ordonate = 0;
while (ordonate == 0)
{
ordonate = 1;
for (int i = 0; i < (n - 1); i++)
{
if (cuvinte[i][0] > cuvinte[i + 1][0])
{
char aux[20];
strcpy(aux, cuvinte[i]);
strcpy(cuvinte[i], cuvinte[i + 1]);
strcpy(cuvinte[i + 1], aux);
ordonate = 0;
}
}
}
char cuvinteFolosite[100][20];
int indexCuvinteFolosite = 0;
for (int i = 0; i < n; i++)
{
int folosit = 0;
for (int j = 0; j < n; j++)
{
if (strcmp(cuvinteFolosite[j], cuvinte[i]) == 0)
{
folosit = 1;
}
}
if (folosit == 0)
{
cout << cuvinte[i] << " ";
strcpy(cuvinteFolosite[indexCuvinteFolosite], cuvinte[i]);
indexCuvinteFolosite++;
}
}
return 0;
}
Explicație:
Dupa ce am citit sirurile de caractere de la tastatura
Le ordonam in ordine crescatoare pe baza primului caracter folosind metoda bubblesort => ordonare aflabetica
dupa aceea parcurgem vectorul de cuvinte ordonat alfabetic si in acelas timp folosim un alt vector "cuvinteFolosite" pentru a tine cont de cuvintele care deja au fost afisare.
Daca cuvantul de pe pozitia "i" din vectorul "cuvinte" nu se afla in vectorul "cuvinteFolosite", il afisam pe ecran si il adaugam in vectorul "cuvinteFolosite"