Помогите пожалуйста разобраться с ошибкой в программе.Откуда-то в отсортирванном массиве появляется число 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);
}
Заранее благодарен