我正在编写一个程序,它将二维数组中的元素与以下行中的元素相乘。我有一个递归方法,它首先遍历二维数组的每一行,从第二行(array[1][])开始,找到不是 0 的数组值,然后取该值并将其与递归调用以在数组的下一行运行函数。我的问题是,当我运行函数并传入 1、2 和 3x3 数组作为参数时,其中数组在数组 [1] [2] 和数组 [2] [0] 中都包含 2,返回 0当我期望一个 4 时从函数中得到。我认为 (slopeArray[current][i]) 是 2,应该乘以基本情况,它也应该是 2。手工写出所有内容,看起来像应该返回 4。
int total(int current, int totalCont, int array[3][3]){
//find the elements in the array that do not contain 0
for(int i=0; i<3; i++){
if(array[current][i] != 0){
//base case
if(current == totalCont){
return array[current][i];
}
//recursive case
else{
(array[current][i]) * (total(current+1, totalCont, array));
}
}
}
}