Rezolvare in C++
Se citesc de la tastatură elementele unui tablou unidimensional. Să se afişeze, în ordine
crescătoare, valorile introduse şi numărul lor de aparitii.
Răspunsuri la întrebare
Răspuns:
#include <iostream>
#include <sstream>
#include <vector>
#include <string>
#include <algorithm>
int main()
{
std::vector<std::string> lista;
std::string temporar;
std::cout << "Lista (elemente separate cu spațiu): ";
std::getline(std::cin, temporar);
std::istringstream flux(temporar);
while (flux >> temporar) {
lista.push_back(temporar);
}
std::sort(lista.begin(), lista.end());
for (int i = 0; i < lista.size(); i++) {
int j = 0;
while (lista[i] == lista[i + j]) {
j++;
}
std::cout << lista[i] << " apare de " << j << " ori" << std::endl;
i += j - 1;
}
}
Explicație:
Am presupus că accentul e pe numărarea apariţiilor, așa că pentru sortare am folosit std::sort() din biblioteca de rutine algorithm.