Programming Problem
Calculating bowling match scores
A bowling match consists of ten frames. Each frame except for the tenth
consists of one or two balls, or attempts to knock down the ten pins at
the end of the alley. Doing so on the first ball of the frame is called
a strike, and the second ball of the frame is not rolled. Knocking down
all ten pins with both balls (having left some up with the first ball)
is called a spare. If both attempts to knock down the pins leave some
standing, the frame is called an open frame. A spare in the tenth frame
gives the bowler one extra ball; a strike in the tenth gives him or her
two extra balls. A bowling score is computed as follows. A strike
counts as 10 points plus the sum of the next two balls. A spare counts
as 10 points plus the next ball. Any other balls merely count as
themselves, as do any bonus balls rolled as a result of a strike or a
spare in the tenth frame. Suppose for example that the sequence of
balls was
9 1 0 10 10 10 6
2 7 3 8 2 10 9
0 9 1 10
The cumulative score for the ten frames would be
Frame score
----- -----
1 10
2 30
3 56
4 74
5 82
6 100
7 120
8 139
9 148
10 168
Write a program to accept from standard input the scores for a sequence
of balls and output the scores for the ten frames. There may be
multiple lines of input, where each input line will be the scores for
one player. The scores will be separated by one or more blanks. You may
assume that the number of scores on the line is valid.
Your design should include an array named “pins” that stores the
sequence of balls read from the input stream. This array will
have at most 21 elements. Use an array of size ten named “frames” to
store the score computed for each frame.