第3关:编写递归函数求数组元素的和


任务描述

本关任务:编写递归函数求数组从起始序号到结束序号之间数组元素的和。

相关知识

可以根据数组下标来设置递归执行的调用以及终止条件。 要计算数组a从起始序号start到结束序号end之间数组元素的和: (1)如果数组a起始序号start等于结束序号end,那么返回值为此序号数组元素值a[start]。 (2)如果数组a起始序号start小于结束序号end,那么返回值为a[start]与数组astart+1end的之间数组元素的和。

编程要求

根据提示,在右侧编辑器补充代码。编写递归函数求数组从起始序号到结束序号之间数组元素的和。

测试说明

平台会对你编写的代码进行测试:

测试输入: 10 91 1 2 3 9 5 4 6 8 7 2 6

预期输出: 23

输入提示: 第一行表示数组元素的个数 第二行输入数组元素的值 第三行表示数组起始序号 第四行表示数组结束序号

输出提示: 数组从起始序号到结束序号之间数组元素的和


开始你的任务吧,祝你成功!

#include <stdio.h>
#define N 20
int Fun(int a[],int start,int end);
int main()
{
    int a[N], sum;
    int i,n,s,e;
    //printf("输入整数个数:");
    scanf("%d",&n);  
    //printf("输入%d个整数:\n",n);
    for(i=0;i<n;i++)
    {
    	scanf("%d",&a[i]);
    }
    //printf("输入起始位数:");
    scanf("%d",&s);
    //printf("输入终止位数:");
    scanf("%d",&e);
    sum = Fun(a,s,e) ;
    printf("%d\n",sum);
    return 0;
}
/**********定义Fun()函数**********/ 
/********** Begin **********/ 
int Fun(int a[], int start, int end)
{
    // Base case: If start exceeds end, return 0
    if (start > end)
        return 0;
                    
    // Recursive case: Add current element and recurse for the rest
    return a[start] + Fun(a, start + 1, end);
}
/********** End **********/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值