直接再帰を使用して配列内の左端、最下位、負の整数のインデックスを見つける関数を要求する宿題がありました。追加の要件は、関数のパラメーターが配列とサイズであり、有効な値がない場合の戻り値が-999であることでした。
私はこれを思いついた:
int LowIndexMinNeg(int src[], int size)
{
if (size == 0)
return -999;
int index = LowIndexMinNeg(src, size - 1);
if (index >= 0)
return (src[size - 1] < src[index]) ? (size - 1) : index;
else
return (src[size - 1] < 0) ? (size - 1) : index;
}
それは機能し、要件を満たし、私に完全な信用を得ました。これは末尾再帰で実装できますか?
再帰呼び出しの結果を比較に使用して、それを渡すか更新するかを決定する必要があるので、それは不可能だと思いますが、再帰はまだ私の脳を結びつけています。私が行方不明になっていることは明らかなことかもしれません。
注:私の宿題はすでに提出され、採点されています。