Now i have another problem when i get an array using

Code:
getArray(int [] arr)
for (i = 0; i < arr.Length; i++)
                {

                    String val = Console.ReadLine();
                    arr[i] = Convert.ToInt32(val);
}
 
 public static void quicks(int lo, int hi, int[] arr)
        {
            int i = lo;
            hi = arr.Length;
            int j = hi;
            int pivot;
            pivot = arr[(lo + hi) / 2];

            if (lo >= hi)
            {
                return;
            }
            Console.WriteLine(pivot);
            
                do
                {
                    while (arr[i] < pivot)
                    i++;
                    while (arr[j] > pivot) // when it comes here it says Array
                                          //  out of bound problem   
                    j--;

                    if (i < j)
                    {
                    int temp = a[i];
                    a[i] = a[j];
                    a[j] = temp;
                    }
                
            } while(i < j ); // end of do condition

            if (lo < j) quicks(lo, j,arr);
            if (i < hi) quicks(i, hi,arr);
Please help me in correcting quicksort function