Allora, per calcolare il perimetro di un poligono con n vertici (chiamiamoli v0, v1, v2 etc.) bisogna ovviamente fare la sommatoria delle lunghezze di tutte le coppie di vertici consecutive, cioè:

v0-v1, v1-v2, v2-v3 ......vn-v0
(col trattino non voglio indicare la differenza ma la lunghezza tra due vertici)

Ho evidenziato l'ultimo calcolo, perchè bisogna trovare la lunghezza tra l'ultimo vertice ed il primo (che sono consecutivi)

un modo semplice è:
----------
for (i=0; i<nvertici; i++)
perim += lung(polig[i], polig[i+1]);

perim += lungh(polig[nvertici],polig[0]); // ultima somma
---------

Nel tuo algoritmo c'è una soluzione più elegante: facendo "i+1 % nvertici" (cioè i+1 modulo nvertici (cioè il resto tra la divisione fra i+1 e nvertici)), si calcolerà l'indice del vertice successivo: se il vertice i è compreso tra 0 e n-1, allora varrà i+1; altrimenti varrà 0 che è proprio il vertice successivo a n (questo perchè nvertici % nvertici dà resto 0)