Ciao a tutti, vi posto questo mio semplice e breve codice da me scritto per esercizio...si tratta di eliminare un elemento da un vettore di interi e poi di portarlo in ultima posizione...purtroppo, e non riesco a capirne il motivo, mi scala tutti gli elementi, ma invece di mettermi in ultima posizione il valore 0 mi scrive sempre 3! Mi sapreste dire in cosa sbaglio? Grazie mille...
#include <stdio.h>
int main ()
{ int array1[] = {3,5,1,6,8,7,5,3,4,10};
int array2[10] = {0};
int i;
int pos;
int hold;
for (i=0; i<10; i++)
printf ("array1[%d] = %d\n", i, array1[i]);
printf ("\n");
for (i=0; i<10; i++)
printf ("array2[%d] = %d\n", i, array2[i]);
printf ("\n");
printf ("Inserisci la posizione dell'elemento che si vuole eliminare dal vettore (0 il primo e 9 l'ultimo):\n");
scanf ("%d", &pos);
for (i=0; i<pos; i++)
array2[i] = array1[i];
for (i=(pos + 1); i<10; i++)
array2[i] = array1[i];
printf ("Il nuovo vettore con l'elemento levato a zero è:\n");
printf ("\n");
for (i=0; i<10; i++)
printf ("array2[%d] = %d\n", i, array2[i]);
printf ("\n");
for (i=pos; i<10; i++)
{ hold = array2[i];
array2[i] = array2[i + 1];
array2[i + 1] = hold;
}
printf ("Il nuovo vettore con l'elemento levato con valore 0 in ultima posizione è:\n");
for (i=0; i<10; i++)
printf ("array2[%d] = %d\n", i, array2[i]);
return 0;
}