Chyba nie rozumiem co próbujesz powiedzieć. Ale może zacznijmy od początku.
W funkcji powtorki masz zmienną typu max, później masz pętle, która wyszukuje Ci największą
liczbę w tablicy, później masz kolejną pętle, która jest źle skonstruowana swoją drogą (jakby na
to nie patrzeć) i która sprawdza, czy dany element tablicy jest równy największemu elementowi. W
tym momencie tablica jest nieposortowana (to jest ważne). Jeśli akurat zerowy element tablicy
jest największym elementem tablicy to zwiększa wartość zmiennej p, która już przed rozpoczęciem
pętli miała wartość 1, czyli zwiększ na 2. Jeśli jednak element tablicy nie jest największym
elementem to zmniejszasz wartość max (teraz już wartość max nie jest taka sama jak wartość
największego elementu tablicy) i zmieniasz p na 1 no i wyświetlasz tekst.
Po pierwsze.. p powinno być równane na początku do 0. Po drugie, druga pętla powinna wyglądać tak for(int i=0; i<8; i++) ewentualnie żeby było bardziej uniwersalnie można wykorzystać sizeof. Po 3 nie powinieneś tak łatwo zmieniać wartości max. po 4 w ogóle tego w żaden sposób nie sortujesz, jeśli to miałoby tak działać, to druga pętla powinna mieć w sobie jeszcze jedną pętle, a w ogóle przed tym powinno to już być posortowane malejąco. po 5 nie wiem czy powinieneś korzystać do tego z funkcji. jakoś szczególnie nie poprawia to przejrzystości kodu. Jeśli jednak chcesz użyć już funkcji, to zrób to dopiero jak będzie Ci wszystko poprawnie działać. Ale ogólnie poczytaj może o sortowaniu jako takim.