Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Eliminare elementi uguali in un array....
Forum - C/C++ - Eliminare elementi uguali in un array.... - Pagina 3

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
Raffa50 (Normal User)
Pro


Messaggi: 68
Iscritto: 07/12/2008

Segnala al moderatore
Postato alle 12:12
Venerdì, 10/09/2010
buuuu! verrò bocciato di informatica!

questo argomeno la prof non lo ha spiegato dei vector! non ci siamo nemmeno arrivati col programma!

tanto quella lì ha bocciato 9 di informatica e io avevo 9 in pagella ma la odiavo lo stesso!!!

forse cambiamo prof (speriamo in meglio)

PM Quote
Avatar
NickoMaiden (Normal User)
Pro


Messaggi: 115
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 18:06
Mercoledì, 15/09/2010
se è una cosa per la scuola è una cosa, se è per te è un altra.
eliminare un elemento da un array secondo me è un parolone, non puoi eliminare un elemento, a massimo assegnargli un elemento da te considerato nullo ad esempio 0 per gli int e lo spazio per i char.
in ogni caso , siccome non ho nulla da fare, ti ho fatto il programmino:


Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #define dim 5
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.    
  9.     int array[dim];
  10.     int i,j,x;
  11.     //inserimento
  12.     for(i=0;i<dim;i++)
  13.       cin>>array[i];
  14.      
  15.      //questo è il codice per trovare gli elementi uguali e sostituirli col valore 0
  16.      for(i=0;i<dim;i++)
  17.       for(j=i+1;j<dim;j++)          
  18.            if(array[i]==array[j]&&array[j]!=0)  //ovviamente devo evitare il controllo  degli elementi con valore 0
  19.                {
  20.              for(x=j;x<dim-1;x++)  //questo è uno shift verso sinistra, facendo cosi l'array sarà più compatto
  21.                 array[x]=array[x+1];
  22.                
  23.                 array[dim-1]=0;  //avendo fatto il primo shift devo assegnare all'ultimo elemento dell'array 0 altrimenti l'ultimo sarà uguale al penultimo
  24.                 j--;     //serve per tornare indietro di un posto dato che facendo lo shift sullo stesso indice c'è un altro valore
  25.                }
  26.            
  27.        
  28.        //stampa
  29.      for(i=0;i<dim;i++)
  30.       cout<<array[i]<<"\t";  
  31.        
  32.     system("PAUSE");
  33.     return 0;
  34. }



se esiste un algoritmo ottimizzato per questo tipo di operazione non lo so, ma se si parla di scuola questo dovrebbe andare più che bene

Ultima modifica effettuata da NickoMaiden il 15/09/2010 alle 18:11
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo