El programa trata de sumar los suspensos y aprobados de una clase de 10 en 4 asignaturas
Lo primero que debes hacer es eliminar las variables "i", "j", "nota", "notas" y "opc" ya que no se utilizan en el programa.
1.- La recogida de datos empieza con el alumno 1, asignatura 1, posteriormente asignatura 2 pero me mantiene el alumno 1, cuando deberia poner alumno 2.
Las ocurrencias de la variable "alumno" son:
int prueba = 1, alumno = 1; /* 1 */
printf ("Calificacion del Alumno %d:", alumno
++); /* 2 */ alumno = 1; /* 3 */
A ella le das el valor inicial de uno (1), imprimes su valor antes del incremento (2) y le asignas nuevamente el valor uno (3). En resumen la variable mantiene el mismo valor antes de su uso.
2.- Una vez introducida las calificaciones, la primera asignatura me suma los suspensos y aprobados, pero los sucesivos lo que hace es sumar los anteriores no me contabiliza los suspensos ya aprobados de la segunda asignatura y asi sucesivamente.
El programa solo hace lo que tu indicas que haga, no hay mas.
Aquí mejor un paréntesis y lo digo en buen plan: consigue un libro de calidad, si necesitas recomendaciones aplica el consejo usual (utilizar el motor de búsqueda de los foros).
----
Si necesitas de un bucle que itere por cada una de las
cuatro asignaturas utilizas un bucle como este:
for (j = 0; j < max_pruebas; j++){
printf("Prueba No %d:\n", j
+ 1);
/* Alguna operacion */
}
Como puedes ver solo necesitas de una variable (el contador del bucle).
Y si necesitas leer las
diez notas por cada prueba utilizas dos bucle anidados de esta forma:
puts("Calculo aprobados y suspensos"); for (j = 0; j < max_pruebas; j++){
printf("Prueba No %d:\n", j
+ 1); for (i = 0; i < max_alumnos; i++){
printf("Calificacion del Alumno %d:\n", i
+ 1);
/* Alguna operacion por cada nota */
}
/* Alguna operacion por cada prueba */
}
Para obtener el promedio por cada materia lo que debes hacer es inicializar las variables "aprobados" y "suspensos" justo antes del bucle interno, en este obtienes todas las notas de la prueba y justo después de este (del mentado bucle) imprimes los resultados.
Un saludo