我的家庭作業要求我通過一個雙精度數組並根據它是否包含負數來返回true或false。問題是我必須使用遞歸函數,而且我不能使用循環。我也不能使用訪問函數之外的任何函數或變量。遞歸找到一個雙數組中的負數
該函數有兩個參數:數組和要檢查的元素數。
我一直在檢查指定數量的元素後,無法停止遞歸。
//what I have so far
bool anyNegative(const double a[], int n)
{
if(n <= 0)
return false;
if(*a < 0)
return true;
anyNegative(a + 1, n);
}
首先,我想到使用計數器,但它不起作用,因爲它每次函數遞歸時都會被重置。
我也試圖指針索引與
if(currentElement == &a[n])
其中currentElement是一個指針數組a的第一個元素進行比較。
但是,我想我的程序沒有工作的原因,當我這樣做是因爲「a」被設置爲一個新的價值每次函數遞歸,所以& a [n]將永遠n元素提前currentElement的。
我被卡住了,如果有人能給我一個提示,那就太好了。
如何預期'n'會永遠失敗*'的條件( n <= 0)',然後在下一個傳球突然傳球。 – WhozCraig