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