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ăspunsuri la întrebare
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;
}
app++;