It counts lines and maintains a sum of the values seen to date. When the key changes, it prints the average, then resets the line count and the sum.
1 196 -> count = 1 sum = 196
1 190 -> count = 2 sum = 196+190
1 200 -> count = 3 sum = 196+190+200
key changed, so print average, and reset count and sum
2 20 -> count = 1 sum = 20
key changed, so print average, and reset count and sum
3 25 -> count = 1 sum = 25
3 19 -> count = 2 sum = 25+19
3 39 -> count = 3 sum = 25+19+39
key changed, so print average, and reset count and sum
4 40 -> count = 1 sum = 40
4 41 -> count = 2 sum = 40+41
4 45 -> count = 3 sum = 40+41+45
eof, so print average
|