In a past lesson, you learned how to use a while-loop to read in
numbers and compute their average. The issue with that lesson is that the original numbers
(i.e. the data) was lost! You have the average, but not the numbers that gave the average!

Since arrays can store multiple values, let's revisit taking the average of some numbers,
while retaining the original numbers. Note the new construct here is the `nums={}`

line, which
tells the comptuer that variable `nums`

is to be an array, but is empty as the program starts, hence the `={}`

,
or "let `nums`

be equal to an empty array right now."

Type your code here:

See your results here:

This code will not run! Three fixes are needed that hopefully will help you understand arrays.

- The
`if x>= 0 then`

line sees if the number that the user has typed is $\ge 0$. If so, this means keep recording numbers. In this first fix, what line would you put right under this`if`

statement to set the $i^{th}$ element of the array called`nums`

equal to`x`

, which is the number the user just typed? - Take a look at the first
`for i=1,#nums do`

line. This is a loop that will count over all element positions of the array called`nums`

. Recall that in computing an average we have to add all numbers to be averaged together. We are computing this sum in the variable called`sum`

. How would you fix the`sum=sum+????`

line to add the value in the $i^{th}$ element of array`nums`

to the variable`sum`

? - Look at the very last print statement in the code. Here we want to show the user
that we still have a record of the numbers they typed. What would you put in this
`print`

statement to display the $i^{th}$ element of the array called`nums`

?

Can you make these fixes? Dismiss.

Does your code work? Want to run it on your iPhone?

Here's your code:

- Use [Control]-[C] (Windows) or [⌘]-[C] (MacOS) to copy your code.
- Paste it using [Control]-[V] (Windows) or [⌘]-[V] (MacOS) into
this page
- Then click the "Use on iPhone" button that you'll see.