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 )

2

Răspunsuri

2014-01-25T17:39:38+02:00
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
dacă c = cm, nu mai e nevoie să faci cm = c, valorile sunt egale deja :)
2014-01-25T22:58:50+02:00
Îț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!