Im trying to get this program to average three number having a problem the sample nmubers im using are 6 6 2 average supposed to be 4.6667 but im just geting .6667 I think it has something to do with my s=value(i) not sure what i need to do now can anybody help?


Dim no As Integer = 3
Dim value() As Integer
ReDim value(0 To no - 1)
Dim s As Integer = 0
For i As Integer = 0 To no - 1
Console.WriteLine(" Input your value:")
value(i) = Console.ReadLine()
s = value(i)
Next
Dim a As Double = s / no
Console.WriteLine(" value is " & a)

You just have a minor typo,

s = value(i)
should read
s += value(i)

Everything falls in place.

Are the numbers to be averaged always integers?

If not, you have some corrections to do.

thanks yes the numbers are always to be averaged as integers.

You're welcome anytime, I love programming!

Ok got one more i need help on the program below im supposed to sort the usernames and passwords in alphabetical order by username. Then display the sorted resort. I was able to sort username alphabetically but im not sure how to get the passwords to match up with the usernames.


Dim n As Integer = 5
Dim user(0 To n - 1) As String
Dim password(0 To n - 1) As String

For i As Integer = 0 To n - 1
Console.Write(" Enter user name: ")
user(i) = Console.ReadLine()

Console.Write(" Enter password: ")
password(i) = Console.ReadLine()
Next

'Sorting the entered user names

'using bubble sort

For i As Integer = 0 To 4
For j As Integer = 0 To n - i - 2

If (user(j) > user(j + 1)) Then

swap(user(j), user(j + 1))

End If
Next
Next

For i As Integer = 0 To n - 1

Console.WriteLine(user(i))
Console.WriteLine(password(i))

Next

End Sub

Sub swap(ByRef str1 As String, ByRef str2 As String)

Dim temp As String

temp = str1

str1 = str2

str2 = temp

I didn't verify your code, but I see the general way to do it. Suppose you have

user(1) = "vsu1"; password(1)="123456"

user(2) = "jim"; password(2)="abcdef"

now, after the swap above, you have

user(1) = "jim"; password(1)="123456"

user(2) = "vsu1"; password(2)="abcdef"

which is wrong, but you can fix it easily by swapping the passwords along with the names, like:

If (user(j) > user(j + 1)) Then
swap(user(j), user(j + 1))
swap(password(j), password(j + 1))
End If

and now user and password will stay together.

Exactly!

With Jim's proposed corrections, you'd be on your way.

Also, if the value of n is a constant, you could replace Dim n... by
Const N as integer=5
This will help the compiler check for code that tries to modify N.

thanks i really appericate the help! Im starting to like programming more myself!

Good to hear! Till next time.

The issue in your code is that you are assigning the value of `s` to `value(i)` instead of adding it to the previous sum. To fix this, you should use the `+=` operator instead of `=`.

Here's the corrected code:

```vb.net
Dim no As Integer = 3
Dim value() As Integer
ReDim value(0 To no - 1)
Dim sum As Integer = 0
For i As Integer = 0 To no - 1
Console.WriteLine("Input your value:")
value(i) = Console.ReadLine()
sum += value(i)
Next
Dim average As Double = sum / no
Console.WriteLine("Average is: " & average)
```

With this correction, the program will correctly calculate the average of the three values.