Hola jimgom,
Para manejar tantas variables, es decir, variables que van de 1 a 5, o de 1 a 20, lo mejor que se me ocurre es usar vectores. Por ejemplo, para declarar una variable que sea un vector de enteros, usamos:
De este modo tenemos, en la misma variable, las tres notas de un alumno.
Además de esto, podemos declarar variables personalizadas, a modo de registros, que contienen variables simples (u otras variables personalizadas), como por ejemplo:
struct TEstudiante{
char nombre[30];
int nota[4];
};
Utilizando esta idea, se me ocurre un pequeño programa que te podría ser de gran ayuda para conseguir realizar tu propósito:
#include <iostream>
using namespace std;
enum { MAX_ESTUDIANTES = 10 };
struct TEstudiante{
char nombre[30];
int nota[4];
};
int main(){
TEstudiante estudiante[MAX_ESTUDIANTES];
for(int i = 0; i < MAX_ESTUDIANTES; i++){
cout << "Estudiante n. " << i+1 << ":" << endl;
cout << "Nombre? ";
cin >> estudiante[i].nombre;
cout << "Nota 1? ";
cin >> estudiante[i].nota[0];
cout << "Nota 2? ";
cin >> estudiante[i].nota[10];
cout << "Nota 3? ";
cin >> estudiante[i].nota[2];
cout << "Nota 4? ";
cin >> estudiante[i].nota[3];
cout << endl;
}
}
El código anterior crea una estructura (una variable personalizada, que llamo yo) con el nombre y las notas de un alumno. Esa misma variable personalizada la convierte en un vector, así podrá contener el nombre y las notas de varios alumnos.
Espero que sea un ejemplo muy sencillo y comprensible.