Che il tuo esercizio fosse preso dal TIC l'avevo capito dal commento sull'ultima riga di codice 
Non capisco quella frase, sinceramente. Potrebbe essere stata tradotta male, anche perchè l'unico modo che conosco per rendere "più dinamico" un array è attraverso l'uso di puntatori e la funzione malloc(). Ti faccio un esempio, ma non sapendo a che livello sei arrivato, non so quanto capirai (spero tutto!) 
codice:
int main() {
int *mioArray;
int i;
// Ora dimensiono l'array in modo che contenga 5 interi
mioArray = (int*) malloc(5 * sizeof(int));
// Ci lavoro: lo riempio
for (i=0; i<5; i++) mioArray[i] = i;
for (i=0; i<5; i++) printf("Ecco l'elemento %d: %d\n", i, mioArray[i]);
// Ora lo ridimensiono, lo faccio raddoppiare di dimensione
mioArray = (int*) malloc(10 * sizeof(int));
// Ci lavoro di nuovo:
for (i=0; i<10; i++) mioArray[i] = i;
printf("\nNuovi valori:\n\n");
for (i=0; i<10; i++) printf("Elemento %d: %d", i, mioArray[i]);
return 0;
}
Ciao.