|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2688
|
[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: 2688
|
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: 03:04.


















