0
while (!feof(fread))
{
    
fscanf(fread, "%s%s%d%d%d", lastName, firstName, &midtrm1, &midtrm2, &final);

double average = (midtrm1 + midtrm2 + final) / 3.0;
if (average >= 90)
grade = 'A';
else if (average >= 80)
grade = 'B';
else if (average >= 70)
grade = 'C';
else if (average >= 60)
grade = 'D';
else
grade = 'F';

totalMidtrm1 += midtrm1;
totalMidtrm2 += midtrm2;
totalFinal += final;
count= count+1;
fprintf(fwrite, "%s\t%s\t%d\t%d\t%d\t%c\n", lastName, firstName, midtrm1, midtrm2, final, grade);



}

Was expecting all the values to be printed once eg: Barrett Edan 70 45 59 F Bradshaw Reagan 96 97 88 A Charlton Caius 73 94 80 B Mayo Tyrese 88 61 36 D Stern Brenda 90 86 45 C

Instead I'm gettin this

Barrett Edan 70 45 59 F Bradshaw Reagan 96 97 88 A Charlton Caius 73 94 80 B Mayo Tyrese 88 61 36 D Stern Brenda 90 86 45 C Stern Brenda 90 86 45 C

  • And note that `fread()` and `fwrite()` are standard functions; you don't want to be reusing those identifiers for variables. – Shawn Nov 06 '22 at 06:39

0 Answers0