Intanto questa riga

char v[i][20];

se i è negativa, ti dà un errore ed è stata comunque eliminata perché non ha senso.
E' stato dimensionato l'array con 100 stringhe.

Per la parte di codice che non capisci, il ciclo viene interrotto se la parola viene trovata. Solo il quel caso, all'uscita del ciclo i sarà minore di max.