I'm doing a programming task for my course and I've been challenged to do it in C#. When I run it, it highlights numbers[position+1] and gives me the error: System.IndexOutOfRangeException: 'Index was outside the bounds of the array.'
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
// array of numbers
int[] numbers = { 9, 5, 4, 15, 3, 8, 11, 2 };
int noOfNumbers = 8;
int temp;
while (noOfNumbers > 1) {
foreach(int position in numbers) {
if (numbers[position] > numbers[position+1])
{
temp = numbers[position];
numbers[position] = numbers[position + 1];
numbers[position + 1] = temp;
}
}
noOfNumbers = noOfNumbers + 1;
}
Console.WriteLine(numbers);
}
}
}
Here is the pseudocode:
BEGIN
Numbers=[9,5,4,15,3,8,11,2]
AmountOfNumbers=8
Temp=0
WHILE AmountOfNumbers>1
FOR each itemPositionInArray in Numbers
IF Numbers[ItemPositionInArray] > Numbers[ItemPositionInArray+1]
Temp=Numbers[ItemPositionInArray]
Numbers[ItemPositionInArray]=Numbers[ItemPositionInArray+1]
Numbers[ItemPositionInArry+1]=Temp
AmountOfNumbers=AmountOfNumbers-1
OUTPUT(Numbers)
END