W C/C++ średnik kończy instrukcję. Konstrukcja for(inicjalizacja; warunek; aktualizacja) instrukcja wymaga, aby po nawiasie zamykającym znalazło się ciało pętli (jedna instrukcja lub blok w klamrach).
Gdy programista zapisze for (int i=0; i < 10; i++);, to znak ";" staje się samodzielną, pustą instrukcją. Oznacza to, że pętla wykona się tyle razy, ile wynika z warunku, ale w każdej iteracji wykona "nic" (brak operacji w ciele pętli). Wcięte niżej linie wyglądają, jakby były częścią pętli, jednak składnia języka tego nie potwierdza: instrukcje po średniku są już poza pętlą i wykonają się dopiero po jej zakończeniu.
Dlatego poprawna diagnoza błędu wskazuje właśnie na średnik w linii z pętlą. Pozostałe propozycje nie trafiają w sedno: zamiana printf na scanf dotyczyłaby wprowadzania danych, a nie naprawy działania pętli; stwierdzenie o "zmiennej liczba zamiast zmiennej" jest nieprecyzyjne i nie opisuje rzeczywistej przyczyny braku iteracyjnego sprawdzania tablicy; brak klamer może być problemem przy wielu instrukcjach w ciele pętli, ale tutaj główną przeszkodą jest to, że ciało pętli zostało już zakończone pustą instrukcją.
Praktyczna wskazówka egzaminacyjna: jeśli widzisz for(...); lub while(...);, najpierw sprawdź, czy nie jest to niezamierzona pusta pętla oraz czy kolejna linia rzeczywiście należy do pętli (wcięcie nie ma znaczenia dla kompilatora).