Come estrarre gli elementi di un vettore nel linguaggio C

In questo programma estraggo una sequenza di n elementi da un vettore a partire da una posizione interna dell'array v. Gli elementi sono copiati in un nuovo vettore v2.

  1. #include <stdio.h>>
  2. // funzione per estrarre gli elementi dal vettore
  3. void estrai(int v[], int v2[], int p, int n) {
  4. int i;
  5. if (p<0 || n<=0) return;
  6. for (i=0; i<n; i++) {
  7. v2[i]=v[p+i];
  8. }
  9. }
  10. // programma principale
  11. int main() {
  12. int i;
  13. int v[]={1,2,3,4,5,6,7,8,9,10};
  14. int v2[10];
  15. int p=2, n=3;
  16. estrai(v,v2,p,n);
  17. for (i=0;i<n;i++) {
  18. printf(" %d ",v2[i]);
  19. }
  20. return 0;
  21. }

Come funziona

Nella riga 13 del programma principale main() definisco un vettore v[].

E' composto da dieci elementi

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

Nella riga 14 dichiaro e definisco un secondo vettore v2[] vuoto con una dimensione massima di 10 elementi interi.

int v2[10];

Nella riga 15 dichiaro le variabili p e n.

La variabile p è la posizione iniziale da cui copiare gli elementi (p=2) nel vettore v, mentre la variabile n è il numero di elementi da copiare (

int p=2, n=3;

Nella riga 16 richiamo la funzione estrai()

estrai(v,v2,p,n);

passandogli come parametri

  • il vettore v da cui copiare
  • il vettore v2 in cui scrivere gli elementi estratti da v
  • la posizione (p=2) dell'array a partire dalla quale estrarre i nuovi elementi
  • il numero degli elementi (n=3) da estrarre dal vettore

Alla riga 3 la funzione inserire() recepisce i in entrata.

E' una funzione void in quanto i vettori non sono variabili locali e sono modificati direttamente dalla funzione.

void estrai(int v[], int v2[], int p, int n) {

Per comodità utilizzo gli stessi nomi v e v2 degli array e delle variabili locali p, n anche nella funzione.

Le variabili locali della funzione sono:

  • la variabile p è la posizione (2) a partire dalla quale estrarre gli elementi dal vettore v.
  • la variabile n è il numero di elementi (3) da estrarre dal vettore v.

Nella riga 5 verifico se la posizione iniziale e il numero di elementi da estrarre sono valori negativi.

Se così fosse, la funzione estrai() restituisce il controllo alla funzione chiamante main() senza fare nulla.

if (p<0 || n<=0) return;

Nelle righe 6-8 scrivo nel vettore v2 gli n=3 elementi del vettore v a partire dalla posizione p=2.

for (i=0; i<n; i++) {
v2[i]=v[p+i];
}

Dopo questa operazione il vettore v2 ha i seguenti elementi

3 4 5

Il programma ha estratto tre elementi dal vettore v a partire dalla posizione due e li ha scritti nel vettore v2.

Nota. La posizione iniziale di estrazione p=2 è la terza posizione nell'array perché la prima posizione di un vettore ha l'indice pari a zero.

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