👤

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 pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!


ID Learners: Alte intrebari