Originariamente inviato da Cell
codice:
    do{
        i=0;
    printf("Inserisci il NUMERO %d di %d: ",i,n-1);
    scanf("%d",&a[i]);       <----- scanf vuole l'indirizzo della variabile
    i++;
    }while(i<n);
Inoltre questo è un ciclo infinito: l'azzeramente di i va fatto prima del do.

@l'autore del thread
Il do-while non è adatto al tuo scopo: tu sai esattamente quante iterazioni fare (da 0 incluso a n escluso), per questo la buona programmazione vorrebbe che venga utilizzato un ciclo for.
codice:
for (i = 0; i < n; i++) {
  printf("Inserisci il NUMERO %d di %d: ", i, n - 1);
  scanf("%d", &a[i]);
}