Build a Gradebook App - Build a Gradebook App

Tell us what’s happening:

HOW CAN 22.point fail when code passes 20. and 21. points

Your code so far

function getAverage(scores) {
  let sum = 0;
  for (let i = 0; i < scores.length; i++) {
    sum += scores[i];
  }
  return Number((sum / scores.length).toFixed(1));
}

function getGrade(score) {
  if (score === 100) return "A+";
  else if (score >= 90) return "A";
  else if (score >= 80) return "B";
  else if (score >= 70) return "C";
  else if (score >= 60) return "D";
  else return "F";
}

function hasPassingGrade(score) {
  return getGrade(score) !== "F";
}

function studentMsg(scores, studentScore) {
  const passed = hasPassingGrade(studentScore);
  if (passed) {
    return "Class average: "+getAverage(scores)+". Your grade: "+getGrade(studentScore)+". You passed the course.";
  } else {
    return "Class average: "+getAverage(scores)+". Your grade: "+getGrade(studentScore)+". You failed the course.";
  }
}
console.log(studentMsg([92, 88, 12, 77, 57, 100, 67, 38, 97, 89], 37));
console.log(studentMsg([56, 23, 89, 42, 75, 11, 68, 34, 91, 19], 100));

Your browser information:

Challenge Information:

Code already passes every topic up to 22 but fails at 22 how can it fail if it was able to pass 20 and 21 which LITERALLY CHECKS THE function studentMsg ?
Build a Gradebook App - Build a Gradebook App

For example, for console.log(studentMsg([92, 88, 12, 100, 67, 38, 97, 89], 37)), the expected message is “Class average: 72.875. Your grade: F. You failed the course.”, what does your function return?

1 Like

It would be great if your example was included in the tests for this project, since all the others show a result with just one decimal point. A bit misleading.

you can create an issue on github to propose this change

1 Like

return Number((sum / scores.length).toFixed(2)); you are a lifesaver :face_blowing_a_kiss: