Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Esercizio su un vettore
Forum - C/C++ - Esercizio su un vettore

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
mariposastar (Normal User)
Newbie


Messaggi: 11
Iscritto: 18/06/2012

Segnala al moderatore
Postato alle 20:16
Giovedì, 12/07/2012
Ciao a tutti,
innanzitutto mi scuso se la domanda vi risulterà troppo semplice o addirittura banale ma volevo sapere:
Se ho un vettore di 100 elementi e poi mi chiede di inserire un elemento in posizione i e di scalare tutti gli altri come fareste?
Grazie per l'aiuto

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:25
Giovedì, 12/07/2012
Con un semplice ciclo for ...



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
mariposastar (Normal User)
Newbie


Messaggi: 11
Iscritto: 18/06/2012

Segnala al moderatore
Postato alle 20:35
Giovedì, 12/07/2012
Avevo iniziato a scrivere qualcosa devo fare due cicli uno per copiare gli elementi fino ad i,poi devo aggiungere il valore in posizione i e successivamente copiare i restanti elementi di V in un vettore W di 101 elementi giusto?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:38
Giovedì, 12/07/2012
Per fare quello che hai detto non servono due cicli ma solo uno

Se l'elemento da inserire non è l'ultimo allora utilizzi il ciclo per spostare in giù tutti gli elementi prima dell'i-esimo e poi inserisci il nuovo valore.

Se scrivi del codice ci ragioniamo


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
mariposastar (Normal User)
Newbie


Messaggi: 11
Iscritto: 18/06/2012

Segnala al moderatore
Postato alle 20:49
Giovedì, 12/07/2012
Ci saranno di sicuro tantissimi errori sono una principiante :(

Codice sorgente - presumibilmente C++

  1. void aggiungi_el (int V[],int W[],int N,int *pos, int *a)
  2.  
  3. int i,j=0;
  4. for (i=0,i< *pos,i++)
  5. {
  6. W[j]=V[i];
  7. j++;
  8. }
  9. W[*pos]=*a;
  10. j++;
  11. for (i=*pos,i< N,i++)
  12. for (j=j, j<N+1,j++)
  13. {
  14. W[j]=V[i];
  15.  
  16. }


Ultima modifica effettuata da HeDo il 13/07/2012 alle 10:16
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:20
Giovedì, 12/07/2012
Il prototipo è indicato dall'esercizio? Perché passi pos e a per puntatore?

P.S. Usa i tag CODE per il codice oppure usa l'indice k al posto di i


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
mariposastar (Normal User)
Newbie


Messaggi: 11
Iscritto: 18/06/2012

Segnala al moderatore
Postato alle 21:24
Giovedì, 12/07/2012
No l'ho inventato io... ho pensato di mettere i puntatori in modo che magari con altre funzioni inserisco la posizione in cui voglio inserire il nuovo elemento a...è sbagliato? oppure potrei togliere il puntatore e inserire nella stessa funzione un input per pos e a...

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:32
Giovedì, 12/07/2012
Allora direi che basta qualcosa di simile

Codice sorgente - presumibilmente C++

  1. void aggiungi_el (int V[], int N, int pos, int a)
  2. {
  3.         int k;
  4.  
  5.         if(pos<N-1)
  6.                 for(k=N-2; k>=pos; k--)
  7.                         V[k+1]=V[k];
  8.  
  9.         V[pos]=a;
  10. }



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
mariposastar (Normal User)
Newbie


Messaggi: 11
Iscritto: 18/06/2012

Segnala al moderatore
Postato alle 8:30
Venerdì, 13/07/2012
Ma facendo tutto su un unico vettore andresti a perdere l'ultimo elemento....il vettore originario è di 100 elementi,aggiungendo un elemento in posizione i diventerebbe di 101 elementi...se facessi come hai scritto tu metterei in posizione i il valore,scalerei tutti gli altri ma il "vecchio" valore che si trovava in posizione 99 andrebbe perso...per questo io facevo due vettori ed il secondo di 101...Non so se mi sono espressa bene

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo