题解 | #牛牛的新数组求和#
牛牛的新数组求和
https://www.nowcoder.com/practice/bdd2cd6638f849cfa06216198e8eb967
#include <stdio.h>
#include <stdlib.h>
int main() {
int cal(int* array, int n);//申明函数
int arrnum, arrsum;//申明要用的变量,分别是数组元素个数和数组总和
scanf("%d", &arrnum);//获取用户输入,数组的元素个数
int arr[arrnum];//申明数组
int* array = arr;//申明指向数组的指针
for (int i = 0; i < arrnum; i++) {
scanf("%d ", &arr[i]);
}
//获取用户输入,赋给数组
arrsum = cal(array, arrnum);//调用函数获取数组总和
printf("%d",arrsum);
return 0;
}
//递归函数实现数组求和(从前往后相加,但是n是递减的)
int cal(int *array, int n) {
if (n == 1) {
return *array;//递的最后一步,返回数组最后一个元素,开始归
}
else {
return *array + cal(array + 1, n - 1);//递归的主体,数组指针后移获取下一个元素,同时n-1
}
}
