#include <stdio.h>
#include <stdlib.h>
int p173e1(){
int i=0; int alum0=0; int alum10=0; int alumapr=0; int alumsusp=0;
int alumnos[36];
char digito[2];
float alumnosuspe=0.0;
float alumnoapro=0.0;
FILE* fichero;
fichero=fopen("datosalumnos.txt","rt");
for (i=0;i<35;i++){
fgets(digito,50,fichero);
alumnos[i]=atoi(digito);
printf("%d\n",alumnos[i]);
}
fclose(fichero);
//CÁLCULOS
for (i=0;i<35;i++){
if (alumnos[i]>=5){
alumapr=alumapr+1;
printf(" %d",alumnos[i]);
printf("Alumno aprobado\n");
}
else{alumsusp=alumsusp+1;
printf(" %d",alumnos[i]);
printf("Alumno suspendido\n");
}
if (alumnos[i]==10)
{alum10=alum10+1;
}
if (alumnos[i]==0){
alum0=alum0+1;
}
}
alumnoapro=(float)(alumapr);
alumnosuspe=(float)(alumsusp);
printf("Alumnos aprobados: %lf\n",(alumnoapro/35)*100);
printf("Alumnos suspendidos: %lf\n",(alumnosuspe/35.0)*100);
printf("Alumnos de 10: %d\n",alum10);
printf("Alumnos de 0: %d", alum0);
return 0;
}
Visualizo lo que tengo en alumnos [ i ] y me salen bien los valores, pero una vez cerrado el fichero y calculados los valores que piden, el primer valor del array me sale 0 y en realidad es 6. Como solución he aumentado el tamaño del array a 36 y empezar el contador desde 1. Funcionaba, ni idea por qué, pero estoy seguro que en lo que he escrito he hecho alguna tontería y no se qué puede ser :/
AYUDEN PLZZZZZ