Informatică, întrebare adresată de Tracomi, 8 ani în urmă

1. Scrieţi un program C/C++ care citeşte de la tastatură un text de maxim 250 caractere,format doar din litere ale alfabetului englez şi spaţii şi determină dacă în text există vreo literă care apare de exact k ori (k un număr natural nenul, k≤250). Dacă da, se va afișa numărul de litere care apar de exact k ori, altfel se va afișa zero. Numărul k se citește de la tastatură.
Exemplu: Pentru textul: Examenul de bacalaureat se numea odata pe timpuri Examen de
maturitate și pentru k = 11, se va afișa 2 (literele a și e apar de exact 11 ori)

Răspunsuri la întrebare

Răspuns de gabi54t
1

Răspuns:

#include <iostream>

#include <cstring>

using namespace std;

char vf[27];

int main()

{

   int k, c=0;

   char s[251];

   cin.getline(s,251);

   cin>>k;

   strlwr(s);

   for(int i=0; i<strlen(s); i++)

       vf[s[i]]++;

   for(int i='a'; i<='z'; i++)

       if(vf[i]==k)  

           c++;

    cout <<c;

   return 0;

}

Explicație:

1. Declari toate variabilele, apoi citesti sirul si numarul k.

2. Transformi tot sirul astfel incat toate literele sa fie ori toate litere mari, ori toate litere mici. (asta va ajuta la urmatorii pasi)

3. Folosind vectorul vf, parcurgi sirul si numeri aparitia fiecarei litere in vectorul (de frecventa) vf.

4. Parcurgand de la "a" la "z", verificam care litere apar de k ori. Daca se gasesc, c creste, daca nu, trece mai departe.

5. Afiseaza c (c inregistreaza cate litere apar de k ori in sir).

Sper ca te-a ajutat, daca ai ceva intrebari, poti lasa un comm si iti rasp cat de repede pot :)

Alte întrebări interesante