Question 2

This was intended to be straightforward, and people seemed to do well
on it.

Here is one possible solution:

$sum = 0;  # initialize sum
@letter_grades = qw(A B C F);
# create hash to store grade counts in and zero out each value
@grade_type{@letter_grades} = (0, 0, 0, 0);

# read grades in array context
chomp(@grades = <STDIN>);

foreach $grade (@grades) {

  if ($grade >= 90) {
    $grade_type{A}++;
  } elsif ($grade >= 80) {
      $grade_type{B}++; 
    } elsif ($grade >= 70) { 
        $grade_type{C}++; 
      } else {
          $grade_type{F}++; 
        }

  # keep running grade total
  $sum += $grade;
}

# @grades in scalar context gives size of array
$avg = $sum / @grades;

print("Class average: $avg\n");
print("Number of A\'s: $grade_type{A}\n");
print("Number of B\'s: $grade_type{B}\n");
print("Number of C\'s: $grade_type{C}\n");
print("Number of F\'s: $grade_type{F}\n");


Louis Ziantz
3/26/1998