Muy buenas, estoy peleandome con el codigo pero algo debo hacer mal puesto que el total de suspendido y aprobados no me lo calcula bien, y tambien me da un error en la condicion do..while por eso la tengo anulada como si fuera un comentario.
Os dejo el codigo a ver si puedes darme algo de luz.
Saludos y gracias a los que estais ahi para ayudarnos a los que empezamos.
#include <stdio.h>
#include <stdlib.h>
#define ALUMNOS 10
#define PRUEBAS 4
int main()
{
int a,b,i,j;
int nota=0;
int prueba = 1,alumno = 1;
int aprobados=0;
int suspensos=0;
float A[ALUMNOS][PRUEBAS];
printf("Calculo aprobados y suspensos:\n");
//do {
for(i=0; i<PRUEBAS; i++){
printf("\nNumero de Prueba %d: \n", prueba++);
for(j=0;j<ALUMNOS; j++){
printf("Calificacion del Alumno %d:", alumno++);
scanf("%f", &A[i][j]);
//if(nota!=-1)
if(nota>=5)
aprobados++;
else suspensos++;
alumno = 1;
}
} //while (nota!=-1);
printf("\nNOTAS DE LOS ALUMNOS");
printf("\nAlumnos aprobados ...............: %d",aprobados);
printf("\nAlumnos suspendidos .............: %d\n",suspensos);
return 0;
}
Los errores principales son dos. El primero son los indices utilizados para acceder al array de arrays:
for (i = 0; i < PRUEBAS; i++) { /* i == 0 .. 3 */
printf ("\nNumero de Prueba %d: \n", prueba++);
for (j = 0; j < ALUMNOS; j++) { /* j == 0 .. 9 */
printf ("Calificacion del Alumno %d:", alumno++);
scanf ("%f", &A[i][j]);
Están al revés, "i" debe iterar desde 0 hasta ALUMNOS y "j" desde 0 hasta PRUEBAS. Lo que lleva a que estas procesando cada uno de los alumnos (contador "i") del cual pides cada una de las notas (contador "j").
El otro error se debe al uso de la variable "nota":
int nota = 0;
/* ... */
printf ("Calificacion del Alumno %d:", alumno++);
scanf ("%f", &A[i][j]);
if (nota >= 5)
aprobados++;
else
suspensos++;
alumno = 1;
A esa variable le das un valor inicial de cero y después de ello nunca la modificas. La variable que debes verificar para conocer si el alumno aprobó o no la materia es "A[ i ][ j ]":
if (A[i][j] >= 5)
aprobados++;
else
suspensos++;
Un saludo
Muchas gracias, he realizado los cambios y perfecto. Ahora el único problema es que me suma los aprobados y suspensos de firma seguida, cuando debería ser por bloques de asignaturas/alumnos.
Un saludo