Código C:
Ver original
#include <stdlib.h> #include <stdio.h> struct alumno{ char nom[20]; char apell1[50]; char apell2[50]; double nota; }; #define LEE_CAD(c,t){int i=0;\ c=getchar();\ while((c=='\n')||(c=='\t')) c=getchar();\ while((c!='\n')&&(i<(t-1))){\ i++;\ c=getchar();}\ c='\0';} #define lee_char(c) { c=getchar();\ while((c==' ')||(c=='\n'))\ c=getchar();} int main(){ void alta_alumno(const char[]); double media(const char[]); void mostrar_mayores_media(const char[], double); alta_alumno("notas.txt"); mostrar_mayores_media("notas.txt", media("notas.txt")); } void alta_alumno(const char nom_fich[]){ FILE *pf; char otro; struct alumno al; } do{ lee_char(otro); }while((otro == 's') || (otro == 'S')); } } double media(const char nom_fich[]){ FILE *pf; double res=0.0; int num_alumnos=0; struct alumno al; } res=res + al.nota; num_alumnos++; } res=res/(double)num_alumnos; return(res); } void mostrar_mayores_media(const char nom_fich[], double m){ FILE *pf; struct alumno al; double media(const char[]); m=media(nom_fich); } if(al.nota >= m) } }
A la hora de compilarlo cuando me pregunta ¿Otro alumno? y pongo que no me da fallo de segmentación. Alguien puede decirme por qué me da este tipo de fallo?. Gracias.