既然上篇说了各项求和是天然递归,那就索性用递归求一下数组的和。是不是有些画蛇添足的尴尬。
// arraySum.c
#include <stdio.h>
int arraySum(int a[], int n);
int main(void) {
int a[6] = {1, 2, 3, 4, 5, 6};
int i, s;
for(i = 0, s = 0; i < 6; i++) {
s += a[i];
}
printf("%d %d", s, arraySum(a, 5));
}
int arraySum(int a[], int n) {
if(n == 0) {
return a[0];
} else if(n >= 1) {
return arraySum(a, n - 1) + a[n];
}
}