👤

Sa se afiseze numarul in care cifra 5 apare de cele mai multe ori. Daca exista mai multe astfel de nuiumere se va afisa primul dintre ele. Daca nu exista nici unul, atunci se va da un mesaj de eroare.(limbaj c++)​

Răspuns :

#include <iostream>

using namespace std;

int main()

{

   int n, curent, gasit = 0, contorMax = 0;

   

   // Citire dimensiune vector

   cin >> n;

   

   // Citeste fiecare valoare

   for (int i=0; i<n; i++){

       cin >> curent;

       

       // Creaza o copie a numarului (nr initial se pierde cand descompunem in cifre)

       int copie = curent;

       

       // Numara aparitiile cifrei 5

       int contorCurent = 0;

       

       // Parcurge cifrele numarului si mareste contor daca e egal cu 5

       while(curent > 0){

           int cifra = curent % 10;

           if (cifra == 5) contorCurent++;

           curent = curent / 10;

       }

       

       // Verifica daca are mai multe cifre de 5 decat valoarea anterior

       // salvata si retine noua valoarea daca e cazul

       if (contorCurent > contorMax){

           gasit = copie;

           contorMax = contorCurent;

       }

   }

   

   // Afiseaza rezultat

   if (contorMax == 0) cout << "Nu s-a gasit niciun numar";

   else cout << gasit;

}

Nota:

  • In variabila contorMax retinem cate cifre de 5 are valoarea citita cu cele mai multe cifre de 5 (care e salvata in variabila gasit)
  • Pentru a verifica cate cifre egale cu 5 avem intr-un numar verificam repetat daca ultima cifra (salvata in variabila cifra, fiind obtinuta prin restul impartirii numarului la 10) e egala cu 5. In cazul in care este, atunci marim contorul de cifre egale cu cinci. Stergem ultima cifra a variabilei pana cand numarul devine 0 (catul impartirii numarului la 10 este numarul fara ultima cifra). Vezi alte exercitii cu descompunerea numarului in cifre aici: https://brainly.ro/tema/8609940
  • Secventa "if (contorCurent > contorMax)" se asigura ca pastram prima valoare atunci cand gasim mai multe numere cu acelasi numar de cifre de 5 deoarece instructiunile din interior de actualizare a numarului nu se executa daca contorCurent este egal cu contorMax. Daca am fi avut >= acolo atunci ar fi luat doar ultima valoare gasita.
  • Evident, daca nu am gasit niciun numar care are 5 in componenta, la final contorMax va ramane tot 0, caz in care afisam mesaj.
Vezi imaginea ANDREI750238
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.


Wix Learning: Alte intrebari