我正在为我的 Computing I 类编写一个小程序,其中程序接受用户决定的多个整数并计算点积。我能够使用迭代方法成功地做到这一点,但现在我们还必须使用递归来做到这一点。我计算点积的函数返回了广泛的错误数字。有时它只会返回数组中最后两个值的乘积的两倍,此时还有 4 个其他集合没有被添加进去。其他时候,我将有 2 个包含 3 个小数字的数组,并且返回的值是 80 千。这是递归函数:
//A and B are the arrays that will be dotted together, and n is number of
//elements in each array
int dotP( int *A, int *B, int n ) {
if( n==1 ) return A[0] * B[0] ;
return A[n-1] * B[n-1] + dotP( &A[n-1], &B[n-1], n-1);
}