Come inserire un elemento in un vettore in C

Questo programma inserisce un nuovo elemento in una posizione interna dell'array spostando tutti gli altri. L'ultimo elemento del vettore viene rimosso.

  1. #include <stdio.h>>
  2. // funzione per inserire un elemento nel vettore
  3. inserire(int v[], int d, int p, int n) {
  4. int i,r;
  5. if (p<0 || p>=d) return -1;
  6. r=v[d-1];
  7. for (i=d-1; i>p; i--) {
  8. v[i]=v[i-1];
  9. }
  10. v[p]=n;
  11. return r;
  12. }
  13. // programma principale
  14. int main() {
  15. int i,r,n=99,p=2;
  16. int v[]={1,2,3,4,5,6,7,8,9,10};
  17. r = inserire(v,10,p,n);
  18. printf("valore immesso %d \n", n);
  19. printf("valore rimosso %d \n", r);
  20. for (i=0;i<10;i++) {
  21. printf(" %d ",v[i]);
  22. }
  23. return 0;
  24. }

Come funziona

Nella riga 16 del programma principale main() definisco un vettore v[] composto da dieci elementi

int v[]={1,2,3,4,5,6,7,8,9,10};

Nella riga 17 richiamo la funzione inserire() passandogli come parametro il vettore stesso v[], il numero di elementi del vettore (10), il nuovo elemento (n) e la posizione (p) dell'array in cui inserire il nuovo elemento.

r = inserire(v,10,p,n);

La funzione inserire() recepisce i quattro parametri in entrata.

Nella riga 5 verifico se la posizione indicata è minore di zero o maggiore del numero di elementi del vettore.

Se così fosse, la funzione inserire() restituisce il controllo alla funzione chiamante main() con un codice di errore -1.

if (p<0 || p>=d) return -1;

Nella riga 6 assegno alla variabile r il valore dell'ultimo elemento dell'array che viene rimosso dopo l'inserimento del nuovo elemento.

r=v[d-1];

Nelle righe 7-9 sposto di una posizione in avanti i valori del vettore fino alla posizione p in cui dovrò inserire il nuovo elemento.

for (i=d-1; i>p; i--) {
v[i]=v[i-1];
}

Nella riga 10 assegno il nuovo valore n alla posizione p dell'array.

v[p]=n;

Poi restituisco il controllo al programma main insieme al valore dell'elemento rimosso

return n

L'output del programma è il seguente

valore immesso 99
valore rimosso 10
1 2 99 3 4 5 6 7 8 9

Il programma ha inserito nella posizione p=2 il nuovo elemento n=99.

Da notare che la posizione p=2 è la terza nell'array perché la prima posizione del vettore ha indice zero.

L'ultimo elemento del vettore (10) è uscito dall'array.

E così via.


 
Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Libri di approfondimento

Il linguaggio C

  1. Un esempio pratico
  2. Come compilare il programma

Impariamo a programmare

  1. Come dichiarare le variabili
  2. Gli operatori
  3. La libreria stdio.h
  4. Come visualizzare in output testo e variabili
  5. Come usare le stringhe
  6. L'istruzione IF
  7. Le strutture cicliche
  8. Le funzioni
  9. Gli array