Non va perché hai combinato un mezzo casotto...
Prova a implementare partendo da qui:
codice:
codice:
int ricerca_lineare(int *nt, int cercato) { //cerca un carattere nell'array
	while(*nt != NULL) {
		if(*nt == cercato)
			return 0;
		nt++;
	}
	return -1;
}

int scorri_alfabeto (char *ch) { //incrementa il carattere
	if ((*ch < 'Z') && (*ch > 'A')) {
		(*ch)++;
		return 0;
	}
	return -1;
}

char trova_nt_libero(char nt1[]) { //trova la prima lettera "libera"
	char lettera = 'A';
	while (scorri_alfabeto(&lettera) == 0) {
		if (ricerca_lineare(nt1, lettera) == 0)
			return lettera;
	}
	return '\0';
}
Nelle prime 2 funzioni se ritorni 1 invece di 0, nell'ultima non ti serve nemmeno il confronto "== 0" quando le richiami.