![](/img/trans.png)
[英]C++ - Having trouble understanding binary tree recursive function (insertion)
[英]Having trouble passing array to recursive function c++
當我在內部運行函數“ check_row”時,嘗試傳遞數組“ sudoku_temp”的方式存在問題,但是我不確定自己做錯了什么。 我想念什么嗎?
int check_row(int j_position, int generated_value, int sudoku_temp[][9]){
for (int i_position = 0; i_position < 9; i_position++)
{
if (generated_value == sudoku_temp[i_position][j_position])
{
generated_value = generate_number();
check_row(j_position, generated_value, sudoku_temp[][j_position]);
}
else
return generated_value;
}
}
要澄清的是,問題是當我嘗試調用自身內部的函數時。 謝謝。
使用變量而不是固定長度(如9),因為遞歸中的參數可能不同。
int check_row(int j_position, int generated_value, int sudoku_temp[][n])
{
for (int i_position = 0; i_position < n; i_position++)
{
if (generated_value == sudoku_temp[i_position][j_position])
{
generated_value = generate_number();
check_row(j_position, generated_value, sudoku_temp[][j_position]);
}
else
return generated_value;
}
}
當您要從數組中提取一個值時,您不能像您一樣留空括號。 另一方面,函數原型看起來很相似,而且很好。 為什么?
int sudoku_temp[][9] // A 2D array of integers second dimension of which is of size 9
或者換句話說,是一個大小為9的數組(大小未知)。我們沒有告訴編譯器數組的實際大小,在這種情況下我們不必這樣做,因為它只是作為參數提供給我們的。
另一方面,在訪問元素時,由於簡單的原因,我們不能留空括號:我們要訪問元素,並且編譯器必須知道哪個元素。 順其自然-刪除空的[]
應該可以解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.