Răspuns :
Răspuns:
#include <fstream>
#include <iostream>
#include <map>
#include <string>
void
adaugaCifraInDictionar(std::map<int, int>& frecventaCifre, int numarCurent, int& cifraMaxima);
int
main()
{
std::string primulNumar;
/* în loc de std::map poți folosi un vector cu frecvențe dar mie cu std::map mi se pare mai ușor */
std::map<int, int> frecventaCifre;
/* deschidem un std::ifstream pentru a citi din fișier */
std::ifstream fin("numere.txt", std::ios::in);
/* dacă fișierul n-a fost deschis cu succes ieșim din program */
if (!fin.good()) {
exit(EXIT_FAILURE);
}
/* citim prima linie (ce conține câte numere citim de pe a doua linie) */
std::getline(fin, primulNumar);
/* convertim numărul citit de pe prima linie de la std::string la int și-l salvăm în cateNumere */
int cateNumere{ std::stoi(primulNumar) };
/* variabila ce va conține cifra maximă găsită din numerele de pe a doua linie */
int cifraMaxima{ INT_MIN };
int numarCurent{};
for (int i{ 0 }; i < cateNumere; i++) {
/* citim de pe a doua linie (std::getline() ne-a mutat pe a doua linie) numerele */
fin >> numarCurent;
/* și adăugăm cifrele numerelor în dicționarul cu frecvențele */
adaugaCifraInDictionar(frecventaCifre, numarCurent, cifraMaxima);
}
/* la final afișăm cifra maximă găsită și de câte ori apare aceasta */
std::cout << cifraMaxima << " " << frecventaCifre.at(cifraMaxima) << "\n";
}
void
adaugaCifraInDictionar(std::map<int, int>& frecventaCifre, int numarCurent, int& cifraMaxima)
{
/* cât timp numărul e diferit de 0 */
while (numarCurent) {
/* salvăm ultima cifră */
int ultimaCifra{ numarCurent % 10 };
/* dacă ultima cifră e mai mare decât cifra maximă atunci cifra maximă o setăm la valoarea ultimei cifre */
if (ultimaCifra > cifraMaxima) cifraMaxima = ultimaCifra;
/* dacă cifra numărului nu există în dicționar o adaugă cu valoarea 0 pe care mai apoi o și incrementează dacă cifra există îi ia valoarea și o incrementează */
frecventaCifre[ultimaCifra]++;
numarCurent /= 10;
}
}
Conținutul fișierului numere.txt
5
23 14 83 88 72 888 23
Vă mulțumim că ați ales să vizitați site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări sau aveți nevoie de asistență suplimentară, vă rugăm să ne contactați. Revenirea dumneavoastră ne va bucura, iar pentru acces rapid, nu uitați să ne salvați la favorite!