Program cifra_max;
c,cm,n de tip intreg
inceput
   scrie ('Dati n')
   citeste (n)
cm <--- n mod 10
n <--- n div 10
cat timp n<>0 executa
inceput
  c <--- n mod 10
  daca c>cm atunci
          cm <--- c
   n <--- n div 10
sfarsit
scrie ('cm=' , cm );
sfarsit

Cerinta : Modificati programul astfel incat sa determine si de cate ori apare cifra maxima in cadrul numarului 9759792 (sa fie rezolvat intr-o singura executie )

Răspuns :

Program cifra_max;
c,cm,n,na de tip intreg
inceput
   scrie ('Dati n')
   citeste (n)
cm <--- n mod 10
n <--- n div 10
na=1
cat timp n<>0 executa
inceput
  c <--- n mod 10
 daca c=cm atunci
    inceput       
      na=na+1
      cm=c
     sfarsit
     altfel
      daca c>cm atunci
          cm <--- c
   n <--- n div 10
sfarsit
scrie ('cm=' , cm );
scrie('numar aparitii=' , na)
sfarsi
Îți mai trebuie o variabilă care numără de câte ori apare, o inițializezi cu 1, o dată cu cm. Apoi, în while(cât timp) dacă c > cm, atunci nu te mai interesează de câte ori a apărut cifra maximă de până atunci, prin urmare reinițializezi variabila de numărare cu 1 pe lângă stabilirea noii cifre maxime. Dacă c = cm, doar crești variabila de numărare cu 1.

Asta e tot, sper că ți-am fost de folos!