Ademas del error que te mencionan, tambien pasa que preguntas cuantas notas deceas preguntar o "grabar" y en el for haces de 0 al total de notas siendo que eso sera que si ingresan 5 al final seran 6 notas las que ingresaran por eso se inicia desde 0 y se pone solo < , a menos que lo inicies en 1 ahi ya lo pones como lo tienes en <=
Aqui te dejo a como yo lo hice usando un arreglo, para asi guardar las notas y poder tener acceso a ellas despues y no perder ninguna.
Aunque bueno en si con lo que ya te mencionaron lo de que inicializas siempre maxima ya con eso se te resolvera y claro lo que te digo lo del for, con eso deberia andarte.
Bueno aqui te dejo un ejemplo que acabo de hacer
- #include <cstdlib> 
- #include <iostream> 
-   
- using namespace std; 
-   
- int main(int argc, char *argv[]) 
- { 
-     int n = 0; 
-     int m, g; 
-     cout << "Total de notas:" << endl; 
-     cin >> n; 
-     int notas [n]; 
-   
-     //Llenamos la matriz notas, con las notas. 
-     for(int x = 0; x < n; x++) 
-     { 
-             cout << "Nota[" << (x+1) << "]: " << endl; 
-             cin >> g; 
-             notas[x] = g; 
-     } 
-   
-     /* 
-     Le colocamos a m la primera nota, esto para asi tomar como si la primera nota fuese la mayor,  
-     esto se hace por si inicializamos en 0, y hay menores a 0, el mayor sera 0 y no existira, yo la verdad siempre lo hago asi 
-     darle el valor de la primera posicion [0] 
-     */  
-     m = notas[0]; 
-   
-     //Vemos cual es el valor mas alto, lo iniciamos en 1 x porque asi no comparara el mismo valor, que seria algo demas jeje 
-     for(int x = 1; x < n; x++) 
-     { 
-             if(notas[x] > m) 
-                         m = notas[x]; 
-     } 
-   
-     //imprimimos la nota mas algo guardada en m 
-     cout << "Nota mas alta: " << m << endl; 
-     cin.get();cin.get(); 
- } 
-