O warningi na maturze się nie przejmuj - kod tam ma być napisany tak by działał, te ostrzeżenia jak np. to:
" comparison between signed and unsigned integer expressions "
wynikają z tego, że porównujesz między sobą dwie rzeczy różnych typów (int ze znakiem i bez). Często możesz spotkać się z podobnymi warningami gdzie np. masz funkcję, która zwraca floata, ale w ciele funkcji robisz coś takiego:
return M_PI * coś
(M_PI to stała Pi, reprezentowana jako double)
Wyskoczy ci warning, że w tym miejscu double obcinasz double do floata i być może tracisz część istotnych dla ciebie informacji.
Jeżeli wiesz, że "dokładniejsze" informacje wynikające z precyzji obu zmiennych nie są Tobie potrzebne możesz rzutować te zmienne np.:
return static_cast<float>(M_PI * coś)
wówczas warning Tobie zniknie ale oczywiście rób tak jeśli wiesz, że faktycznie jesteś świadom konsekwencji przy obcinaniu zmiennych.
Tak jak mówiłem na początku, na maturze zasady czystego kodu się nie liczą, ani też czy wyskakują Tobie jakieś drugorzędne warningi czy nie. Jeżeli tylko nie mają negatywnego wpływu na program, olej to. A to czy mają czy nie musisz ocenić sam aczkolwiek tutaj na to nie wygląda.
Bardzo dobry komentarz padł w uwadze do filmu, możesz wziąć to sobie do serca:
Poza tym pare uwag: widze, że starasz się pisać kod bardzo "poprawnie", wszystko ładnie ponazywane, linie odstępu, ładnie nawiasy klamrowe, do tego komentarze zarówno w kodzie jak i w wynikach... nikogo to nie obchodzi. Nie, naprawdę. Fakt, że właśnie w taki "ładny, poprawny" sposób powinno się pisać jest wręcz w całym systemie edukacji maksymalnie zaniedbany.