【发布时间】:2013-11-05 14:51:31
【问题描述】:
我有一个函数,它接受一个数组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;
}
如果数组包含array = [2; 4; 7; 5],printf 必须显示 18 (2+4+7+5)。顺便说一下函数返回88,你能帮帮我吗?
我正在使用 wxDevC++。
【问题讨论】:
-
别忘了
a[0]也是数组的一个元素,somma会跳过它。