Tralasciando l'inizio in cui l'utente inserisce gli int che mi vanno a riempire l'array...
Anziche' un array ausiliario utilizzerei un int ausiliario (int aux

Inversione:

codice:
...

for (i=0; i<dim/2; i++) {
   aux=array[i];
   array[i]=array[dim-i-1];
   array[dim-i-1]=aux;
}

...