Nie wiem o co Ci konkretnie chodzi, ale:
if(egzamin[z]<0||egzamin[z]>100)
cout<<endl;
else
z--;
cout<<"Wpisz poprawny procent!";
Sleep(1000);
system("cls");
Masz najprawdopodobniej błąd w else (domyślam się po wcięciach). A mianowicie wykona się tam wbrew pozorom tylko instrukcja z--. Jeżeli chcesz aby wykonały się wszystkie cztery instrukcje, musisz je umieścić w bloku kodu {}. A najlepiej to w ogóle proponuję nie skracać sobie zapisu i nie pomijać tych bloków, żeby nie narobić sobie problemów.
if(ocena[a]==2||3||4||5||6)
cout<<endl;
Ten if również działa chyba nie tak, jak ty byś sobie tego życzył. Każda inna wartość niż 0 to true, natomiast w łańcuchu operacji logicznych OR wystarczy jedna wartość true, aby cały wynik też był prawdziwy. Więc na moje oko, ten if będzie się wykonywał zawsze, a będący za nim else - nigdy. Jeśli chcesz poprawić ten kod, to albo porównuj każdą ocenę z osobna, albo lepiej sprawdź zakres w jakim znajduje się ocena.
if (ocena[a] >= 2 && ocena[a] <= 6) {
std::cout << '\n';
}
Proponuję też używać '\n' zamiast std::endl, nie używać windows.h jeśli nie ma takiej potrzeby, nie używać system("cls")... No i jak wspominałem wcześniej, nie pomijać tych bloczków. W niektórych językach są one opcjonalne, w innych obowiązkowe.