1
« en: Viernes 15 de Julio de 2005, 05:27 »
Bueno tienes una matriz básica de dos dimensiones, cursos y asignaturas por curso, y la tercera dimensión la marca cada uno de los alumnos. Podrías declarar la matriz de la siguiente manera la forma mas clara es usando una estructura (el tipo de los valores será según tu formato de nota float si las notas son del tipo 7.5 o int si no vas a usar decimales).
typedef struct {
float matriz_notas[6][5];
}notas;
y una vez en el main declaras
notas *estudiantes;
luego tendrás que leer el número de estudiantes que hay en el fichero, para con un malloc crear memoria suficiente para n estudiantes es decir poder definir la tercera dimensión de la matriz. Los datos para rellenar la matriz de cada estudiante no sé si te vendrán en el fichero o te lo vas a inventar, pero vaya es sencillo ir accediendo a cada matriz de estudiantes. Si tienes n estudiantes (y ya has creado espacio con el malloc) puedes ir poniendo para cada estudiante dentro de un for hasta n:
estudiantes.matriz_notas[0][0] = 7.5;
estudiantes.matriz_notas[0][1] = 5.5;
bueno i es el índice del for que recorre los estudiantes, y los índices de matriz_notas los puedes recorrer con dos índices mas en dos for anidados, recogiendo las notas del fichero o no sé de dónde ya que no lo especificas en el post.
Otra opción, sin usar estructuras, aunque queda menos clara también te puede servir:
float *matriz_estudiantes[6][5]; (luego lo mismo malloc para crear los n estudiantes)
Espero que te sirva.