i keep getting a bus error but i don't know why
Code:
#include <stdio.h>
#include <string.h>
typedef struct data
{
char student[10];
int scores[4];
char alp_grd;
float avg_grd;
} dat_t;
void avg_score (dat_t student_t[13]);
void letter_grd (dat_t student_t[13]);
void results(dat_t student_t[13]);
void sort_avg(dat_t student_t[13]);
int main(void)
{
dat_t student_t[13];
FILE *fp;
int s=0;
int n=0;
printf("\n Reading the name file\n");
fp = fopen("student.dat", "r");
for(n=0;n<13;n++)
{
fscanf(fp,"%s",&student_t[n].student);
}
fclose(fp);
printf("\n Reading the scores file\n");
fp = fopen("scores.dat", "r");
for(n=0;n<13;n++)
{
for(s=0;s<4;s++)
{
fscanf(fp,"%d",&student_t[n].scores[s]);
}
}
fclose(fp);
avg_score(student_t);
letter_grd(student_t);
sort_avg (student_t);
results(student_t);
return(0);
}
void avg_score(dat_t student_t[13])
{
int n,s;
float sum = 0, average = 0;
for(n=0;n<13;n++)
{
for(s=0;s<4;s++)
{
sum = sum + student_t[n].scores[s];
}
average = sum / 4;
student_t[n].avg_grd = average;
sum = 0;
}
}
void letter_grd (dat_t student_t[13])
{
int s;
for(s=0;s<13;s++)
{
if(student_t[s].avg_grd>=90)
student_t[s].alp_grd = 'A';
else if((student_t[s].avg_grd>=80)&&(student_t[s].avg_grd<90))
student_t[s].alp_grd = 'B';
else if((student_t[s].avg_grd>=70)&&(student_t[s].avg_grd<80))
student_t[s].alp_grd = 'C';
else if((student_t[s].avg_grd>=65)&&(student_t[s].avg_grd<70))
student_t[s].alp_grd = 'D';
else if(student_t[s].avg_grd<65)
student_t[s].alp_grd = 'F';
}
}
void results(dat_t student_t[13])
{
int s,n;
printf("\n\nName\t Exam1 Exam2 Exam3 Exam4 Averag letter Grade\n\n");
for(s=0;s<13;s++)
{
printf("%-s\t ", student_t[s].student);
for(n=0;n<4;n++)
{
printf("%-2d\t ", student_t[s].scores[n]);
}
printf(" %-3.2f\t\t%-c \n", student_t[s].avg_grd,student_t[s].alp_grd);
}
}
void sort_avg(dat_t student_t[13])
{
dat_t temp;
int i,j,min;
for ( i = 0 ; i < 12 ; i++ )
{
for ( j = i+1 ; 13-i ; j++ )
{
if (student_t[i].avg_grd < student_t[j].avg_grd)
{
temp = student_t[j];
student_t[j] = student_t[i];
student_t[i] = temp;
}
}
}
}