Răspuns :
Răspuns:
Cred codul a fost planificat să afişeze cifrele aparente în cele n numere introduse, în ordinea crescătoare a apariţiei lor, adică mai întâi pe cele cu frecvenţă mai mică. Sunt câteva observaţii. constanta INF a fost definită prea mare şi intră în conflict cu datele de tip int. Nu înţeleg de ce a fost luat
for (i=1; i<=cif; i++), de ce până la cif? cred din greşeală, şi de ce i de la 1 şi nu de la 0? Poate numerele introduse nu au cifre nule?
Acelaşi lucru şi aici
for (i=1; i<=9;i++)
if ((vf[i]<minn)&&(vf[i]))minn=vf[i], p=i, ok=false;
i nu e de la 0. Eu am redactat puţin codul...
Dacă codul acesta are enunţ, era bine să-l scrii...
Explicație:
#include <iostream>
#define INF 2470000
using namespace std;
int n,i,x,cif,vf[10],minn=INF,p;
int main()
{
bool ok;
cin >>n;
for (i=1; i<=n;i++)
{
cin >>x;
while (x)
{
cif =x%10;
x /=10;
vf[cif] +=1;
}
}
for (i=0; i<=9; i++)
cout <<vf[i]<<" ";
cout << "\n";
do
{
ok=true;
minn=INF;
for (i=0; i<=9;i++)
if ((vf[i]<minn)&&(vf[i]))minn=vf[i], p=i, ok=false;
vf[p]=INF;
if (!ok)
cout << p <<" ";
}while (!ok);
return 0;
}
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că resursele disponibile v-au fost de ajutor. Pentru întrebări sau asistență suplimentară, nu ezitați să ne contactați. Ne bucurăm să vă revedem în curând și vă invităm să ne salvați în lista de site-uri preferate!