👤

Am incercat sa fac un cod foarte usor si nu stiu ce nu functioneaza ; Cerinta: Scrieti un algoritm care sa afiseze numarul de aparitii al celei mai mari cifre a unitatilor numerelor intoduse .
Aici e ce am incercat :
https://pastebin.com/gp7SdFBv


Răspuns :

Răspuns:

Algoritmul tau este bun si foarte bine gandit pentru inceput. Singura lui problema este ca atunci cand nu gaseste un c egal cu max, se reinitializeaza mereu cu 0. Adica in secventa asta:

if(c==max)

           app++;

           else

             app=0;

Recomandarea mea este sa scoti else-ul. Nu de fiecare data cand ai o structura de tip if este nevoie si de un else, decat daca ai mai multe cazuri date de problema. Iar aici calculatorul stie singur ca nu trebuie sa creasca app-ul in cazul in care nu gaseste un c egal cu max-ul.

Explicație:

Răspuns:

#include <iostream>

using namespace std;

int main()

{

int n ,x ,max=-1,c;

cin>>n;

int app=0;

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

{

cin>>x;

c=x%10;

if(c>max)

max=c;

if(c==max)

app++;

}

cout<<"nr maxim este "<<max<<endl<<"si apare de "<<app<<" ori";

return 0;

}

si am mai facut ceva asemanator

#include <iostream>

using namespace std;

int main()

{int n,c,max=0,p=0,f;

cin>>n;

cout<<"cifra maxima a lui "<<n<<" este ";

c=n%10;

while(n!=0){

f=n%10;

if(c>f)

max=c;

else max=f;

if(f==max)

p=p+1;

n/=10;

}

cout<<max<<endl;

cout<<"cifra maxima a lui n apare de "<<p<<" ori";

return 0;

}

Vezi imaginea WHOW
Vezi imaginea WHOW