Come invertire un vettore in C

Questo programma inverte la posizione degli elementi in un array con il linguaggio C.

  1. #include <stdio.h>
  2. // funzione per invertire l'ordine degli elementi
  3. void inverti(int v[], int s) {
  4. int i,k,x;
  5. if (s==1) return;
  6. for(i=0, k=s-1; i<s/2; i++, k--) {
  7. x=v[i];
  8. v[i]=v[k];
  9. v[k]=x;
  10. }
  11. }
  12. // programma principale
  13. int main()
  14. {
  15. int v[]={1,2,3,4,5,6,7,8,9};
  16. int i;
  17. inverti(v,9);
  18. for (i=0;i<9;i++) {
  19. printf(" %d ",v[i]);
  20. }
  21. return 0;
  22. }

Come funziona

Nella riga 15 del programma definisco un vettore numerico v[] con nove elementi.

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

Nella riga 17 chiamo la funzione inverti() passandogli come argomenti il vettore v[] e il numero di elementi del vettore.

La funzione inverti() sostituisce il primo elemento con l'ultimo, il secondo con il penultimo, e via dicendo.

inverti(v,9);

Infine, nelle righe 18-20 della funzione main() stampo gli elementi del vettore v[] dopo la modifica.

Il risultato in output è

9 8 7 6 5 4 3 2 1

L'ordine degli elementi nel vettore è stato invertito.

Nota. Lo script non esegue alcun ordinamento, si limita a sostituire la posizione degli elementi nell'indice del vettore.

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