2D 配列の要素を次の行の要素で乗算するプログラムを作成しています。最初に2D配列のすべての行を反復処理し、0以外の配列値がある場所を見つけてから、その値を取得し、再帰呼び出しで乗算して配列の次の行で関数を実行する再帰メソッドがあります. 問題は、for ループが行の次の要素に移動する前に、再帰からの値が返されることです。return
これは、再帰呼び出しの前にステートメントを配置した結果であることを知っています。しかし、 を取り出した場合return
、 から返される整数total()
は実際にはオフ (通常は 0) です。
int total(int current, int totalCont, int array[10][10]){
//find the elements in the array that do not contain 0
for(int i=0; i<10; i++){
if(array[current][i] != 0){
//base case
if(i == 0){
return array[current][i];
}
//recursive case
else{
return (array[current][i]) * (total(current+1, totalCont, array));
}
}
}
}