Assume that two arrays (vectors) are used to store information about student's grades. One array contains the students' numerical scores (integers in the range 0..100). The other array contains the corresponding letter grades (characters in the range 'A'..'D').
Assume that a constant
const int NUM_GRADES
= some positive integer;
has been defined.
Part A
Write the function LetterAverage
, whose header is given below.
LetterAverage
returns the average (arithmetic mean) of the student scores that
correspond to a given letter grade. LetterAverage
returns 0.0 if none of the
student scores corresponds to the given letter grade.
For example, given the following arrays (vectors)
StudentScores: 96 72 84 65 89 60 78 86 75 61 85 StudentLetters: A C B D A D B B C D B
LetterAverage(StudentScores,StudentLetters,'B')
returns the number 83.25,
which is the average of the four scores that correspond to the letter grade B.LetterAverage(StudentScores,StudentLetters,'A')
returns the number 92.5,
which is the average of the four scores that correspond to the letter grade A.
Complete function LetterAverage
below the following header.
double LetterAverage(const apvector
// post-condition: returns 0.0 if no element of letters == grade otherwise, returns average of all scores[n],
// for all 0 <= n < NUM_GRADES, such that letters[n] == grade
Part B
Write the function Averages
, whose header is given below. Averages
prints a list of each of the four letter grades ('A'..'D') followed by the average of the
student scores that correspond to that letter grade.
For the example given in part (a), the call Averages(StudentScores,StudentLetters)
prints the following list.
A 92.50 B 83.25 C 73.50 D 62.00
Averages
you may call the function LetterAverage
of part (a).
Assume that LetterAverage
works as specified, regardless of what you wrote in part (a).
Complete function Averages
below the following header
void Averages(const apvector