To dobrze, że zaliczyłeś, mam nadzieję, że przy okazji doczytałeś też o tablicach i to lepiej zrozumiałeś. Tak krótko…
n w deklaracji tablicy int tab[n] jest czymś innym niż w późniejszym miejscu skorzystania z tej tablicy tab[n]. W pierwszym miejscu n jest rozmiarem tablicy, mówi ile komórek ta tablica może mieć.
W drugim miejsc n jest numerem komórki w tej tablicy. Ponieważ w C++ komórki numeruje się od 0 to w tablicy zadeklarowanej jako tab[n] komórki występują od 0 do n-1. Gdy zapisujesz coś do tab[n] to wpisujesz to w miejscu, które do tablicy już nie należy i zwykle kończy się bardzo nieprzyjemnie. To co piszę to absolutne podstawy wiedzy o tablicach i w każdej książce o C++ można to znaleźć.