再帰だけでソート関数を記述しようとしています。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'値を返します。適用される。配列の最大値要素に*ポインタ*を返すためには、関数が 'int *'型を持っている必要がありますので、 '&'は必要ありません。 –