Я пытаюсь написать функцию сортировки только с рекурсией. Я получаю сообщение об ошибке:c сортировка с рекурсией
lvalue required as unary '&' operand
Это являются функции я использую:
void sorter_rec (int a[], int n) {
if (n ==1) return;
else {
swap(&(maximumrec(a,n)), &a[n-1]);
sorter_rec(a,n-1);
return;
};
}
Ошибка в sorter_rec.
void swap(int *px, int *py)
{ int z = *px;
*px = *py;
*py = z;
return;
}
int maximumrec(int ar[], int n)
{
if (n == 1) {
return ar[0];
} else {
int max = maximumrec(ar, n-1);
return ar[n-1] > max ? ar[n-1] : max;
}
}
Как я могу это решить?
Призыв к функции 'Int maximumrec (а, п)' возвращает 'int' значение, которое не может иметь' & 'адресно-оператора применяется. Возможно, функция должна иметь тип 'int *' для возврата указателя * в элемент максимального значения массива, тогда вам не понадобится '&'. –