1mm0rt4le ha scritto:
mhh provo ad aiutarti io anche se come saprai non sono bravissimo
se lo ordini l'algoritmo verrà più corto altrimenti possiamo farlo senza ordinarlo ma dovrebbe essere più lungo xD
Gentilissimo, ti spego scrivo la funzione che non va:
void calcolaOccorrenze(vettore v,int r){
for(int i=0;i<r;i++){
int occ=1;
v[i].occ=0;
for(int j=i+1;j<r;j++)
if(v[i].val==v[j].val){
occ++;
v[i].occ=occ;
}
if( v[i].occ!=0)
cout<<"\n Il numero "<< v[i].val<<" si ripete "<<v[i].occ<< " volte";
}
}
v è un array di record che ha due campi : valore e occorrenza
il problema sussiste nel momento in cui un numero si ripete più di 2 volte, infatti:
nell'ipotesi che il mio vettore sia costituito da : 1 2 2 3 4 5 6 3 7 8 9 6 6 5
il mio programma mi mostra il seguente risultato:
il numero 2 si ripete 2 volte
il numero 3 si ripete 2 volte
il numero 5 si ripete 2 volte
il numero 6 si ripete 3 volte
il numero 6 si ripete 2 volte