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

In Writing

`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`