Supongo que estás empezando por tu duda y que por tanto no usas memoria dinámica. Entonces puedes hacer lo siguiente:
#define MAX_SIZE 100 // creamos un array/vector de capacidad maxima = 100
int main(){
float notas[MAX_SIZE]; // creamos un array de 100 elementos
int num_notas; // cantidad de notas que vamos a introducir. Tiene que ser menor o igual que el MAX_SIZE
float promedio = 0; // promedio de las notas
printf("Introduce el numero de notas que vas a almacenar: ");
for(int i = 0; i < num_notas; ++i){
printf("Introduce la nota %d: ", i
+1); }
// si queremos calcular el promedio...
for(int i = 0; i < num_notas; ++i)
promedio += notas[i];
promedio /= num_notas;
}
Así ya tienes todas tus notas guardadas en un array. Cuando lo vayas a recorrer recuerda recorrerlo hasta <num_notas>, no hasta <MAX_SIZE> ya que desde la posición notas[num_notas] hasta notas[MAX_SIZE-1] tendrás basura.
Si lo quieres solo para el promedio. Puedes hacerlo más simple.
int num_notas; // numero de notas que vamos a introducir
float nota; // guarda la nota actual
float promedio = 0; // acumula la suma de las notas y al final guarda el promedio
// preguntas la cantidad de notas a introducir
for(int i = 0; i < num_notas; ++i){
printf("Introduce la nota %d: ", i
+1); promedio += nota; // equivalente a promedio = promedio + nota
}
promedio /= num_notas; // equivalente a promedio = promedio / num_notas
Tambien deberias agregar una variable que cuente las veces que se repite el cuerpo del for, no seria correcto usar la "i" en este caso por que siempre quedaria con 1+ de las veces que se repitio el cuerpo del for, a menos que le decrementes uno,una vez que termine el for.
Ya lo tiene agregado eso. En su caso es <vm> (aunque un nombre como <num_notas> es más específico)...