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();
}