C 数组整数的递归函数

C 数组整数的递归函数,c,recursion,C,Recursion,我有一个函数,它接受数组a[]及其长度n。我必须计算数组中的数字之和。我编写了这个递归函数: int somma(int a[], int n) { if (n == 0) { return 0; } else {return a[n] + somma(a, n-1);} } 我在我的main()中这样调用它: int main() { int array[5], ris; printf("Type the numbers of the array: \n");

我有一个函数,它接受数组
a[]
及其长度
n
。我必须计算数组中的数字之和。我编写了这个递归函数:

int somma(int a[], int n)
{
 if (n == 0) { return 0; }
 else {return a[n] + somma(a, n-1);}    
}
我在我的
main()
中这样调用它:

int main() {   

 int array[5], ris;

 printf("Type the numbers of the array: \n");

 for(int i=0; i<4; i++)
 { 
   scanf("%d", &array[i]); 
 }

 printf("\nThe sum is: %d.", somma(array,4));

 getch();
 return 0;
}
int main(){
int数组[5],ris;
printf(“键入数组的编号:\n”);

对于(int i=0;i您只读取数组中的前四个值。
array[4]
包含垃圾值

for(int i=0; i<5; i++) //change to 5
{ 
     scanf("%d", &array[i]); 
}

您只读取数组中的前四个值。
array[4]
包含垃圾值

for(int i=0; i<5; i++) //change to 5
{ 
     scanf("%d", &array[i]); 
}

您只读取数组中的前四个值。
array[4]
包含垃圾值

for(int i=0; i<5; i++) //change to 5
{ 
     scanf("%d", &array[i]); 
}

您只读取数组中的前四个值。
array[4]
包含垃圾值

for(int i=0; i<5; i++) //change to 5
{ 
     scanf("%d", &array[i]); 
}
你可以试试这个:-

for(int i=0; i<=4; i++)
 { 
   scanf("%d", &array[i]); 
 }
你可以试试这个:-

for(int i=0; i<=4; i++)
 { 
   scanf("%d", &array[i]); 
 }
你可以试试这个:-

for(int i=0; i<=4; i++)
 { 
   scanf("%d", &array[i]); 
 }
你可以试试这个:-

for(int i=0; i<=4; i++)
 { 
   scanf("%d", &array[i]); 
 }

如果数组有
n
个元素,则最后一个元素有索引
n-1
。请按如下方式更正
somma
函数:

int somma(int a[], int n) {
    if (n <= 0) { 
        return 0;
    }

    return a[n-1] + somma(a, n-1);    
}
intsomma(inta[],intn){

如果(n如果数组具有
n
元素,则最后一个元素具有索引
n-1
。请按如下方式更正
somma
函数:

int somma(int a[], int n) {
    if (n <= 0) { 
        return 0;
    }

    return a[n-1] + somma(a, n-1);    
}
intsomma(inta[],intn){

如果(n如果数组具有
n
元素,则最后一个元素具有索引
n-1
。请按如下方式更正
somma
函数:

int somma(int a[], int n) {
    if (n <= 0) { 
        return 0;
    }

    return a[n-1] + somma(a, n-1);    
}
intsomma(inta[],intn){

如果(n如果数组具有
n
元素,则最后一个元素具有索引
n-1
。请按如下方式更正
somma
函数:

int somma(int a[], int n) {
    if (n <= 0) { 
        return 0;
    }

    return a[n-1] + somma(a, n-1);    
}
intsomma(inta[],intn){

如果(n)不要忘记
a[0]
也是数组的一个元素,它
somma
跳过。不要忘记
a[0]
也是数组的一个元素,它
somma
跳过。不要忘记
a[0]
也是数组的一个元素,它
somma
跳过。不要忘记
a[0]
也是数组的一个元素,它
somma
跳过。是的,你是对的。我更新了递归的退出条件。注意
是的,你是对的。我更新了递归的退出条件。注意
是的,你是对的。我更新了递归的退出条件。注意
是的,你是对的对。我已经更新了递归的退出条件。注意