|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
[C] altra soluzione storta?
L'esercizio chiede:
Scrivere una funzione che preso in input un vettore di interi ordinato in senso non decrescente e la sua dimensione, elimina dal vettore tutti i duplicati compattandolo e ritorna il numero di elementi eliminati Es: Se V = [2,4,4,5,7,7,7] la funzione modifica il vettore in modo tale che i primi 4 elementi siano [2,4,5,7] e ritorna 3 Il codice è il seguente: Codice:
long EliminaDuplicati(int V[], long dim){ int k=0, i; for(i=1;i<dim;i++){ if(V[i] != V[k]{ k++; V[k] = V[i]; } } return dim - (k+1); } "in modo tale che i primi 4 elementi siano [2,4,5,7]" ma nel testo dice di fare la funzione che elimina i duplicati...e i 7 non vengono eliminati anche se effettivamente viene ritornato 3.... mmm...altra esercitazione preesame fatta di merda dal proff? ![]() Grazie Andrea |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
A occhio mi sembra che vada bene...il problema è la dimensione del vettore...
Il nuovo vettore avrà dimensione pari a quella originale - il numero ritornato dalla funzione...quindi quando lavori su quel vettore devi considerare solo i primi 4 elementi...gli altri sono rimasti lì perchè presenti nel vettore iniziale... |
![]() |
![]() |
![]() |
#3 |
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
|
ah ok..avevo capito che difatto la comodità fosse ridurre le dimensioni del vettore che però non vengono ridotte e mi sembrava strano
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:46.