Scrivere in questo modo

int n, i, l, q, j = 0, k = 0, p;
char s[n + 1], c, chiave[27], alf[27], a = 'a';

non ha senso perché, in questo momento, il valore di n non è definito.