Помогите пожалуйста разобраться с ошибкой в программе.Откуда-то в отсортирванном массиве появляется число 6(даже если не вводилось)!!!
Код:
#include<stdio.h>
#define n 6
void qsrt (int* v, int l, int r){
  
  if (l>=r) return;                      // Условие выхода из рекурсии 
  int l1, r1, m;
  int tmp;
     l1 = l; r1 = r;                 // Запомнить начальное значение границ
  m = (r+l)/2;                      // вычисление опорного элемента
 
  while(l<r){                      //  разделение массива
    while ((v[l]<=v[m])&&(l<m)) l++;     // сдвиг левой границы
    while ((v[r]>=v[m])&&(r>m)) r--;               // сдвиг правой границы
 
    tmp = v[l];                     // обмен граничных элементов
    v[l] = v[r];
    v[r] = tmp;
   if( l==m) m = r;                // обновление индекса опорного элемента в случае
   if (r==m) m = l;                //  если опорный элемент участвовал в обмене
  }
  qsrt(v, l1,m-1);                  //  сортировка полученных массивов
  qsrt(v, m+1, r1);
}   
void print(int* m){                  //вывод отсортированого массива
    for(int i=0;i<n;i++){
      printf(" array %d\n",m[i]);
   
      }
   }
   void main(){
   int i;
   int a[n];
   for(i=0;i<n;i++){
      printf("enter %d element of array\n",i);
      scanf("%d",&a[i]);
      }
   qsrt(a,0,n);
   print(a);
}
Заранее благодарен