题解 | #牛牛的新数组求和#

牛牛的新数组求和

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
    }
}

全部评论

相关推荐

10-10 00:14
门头沟学院 Java
程序员小白条:20年架构师,无工资
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务