0

我的算法有问题:我需要做的是通过递归将数组的元素相乘。这是我到目前为止所得到的:

 #include <stdio.h>
    void vector(int vec[],int tam) {
    // gets a simple array
        int i;
        for (i=0; i<tam; i++) {
            printf("Ingrese un numero: ");
            scanf("%d",&vec[i]);
        }
    }
    int mv(int vec[], int tam, int pos) {
     // need help with the base and general case!
        if (tam==0) {
            return 1;
        } else {
            return vec[pos]*mv(vec,tam,pos+1);
        }   
    }

    int main() {
        int vec[3];
        vector(vec,3);
        printf("%d",mv(vec,3,0));
    }
4

1 回答 1

0

基本情况是if (pos == tam) return 1;

您还必须确保数组不为空

于 2012-08-31T04:37:34.563 回答