数据结构C语言写一个递归函数,计算数组元素的和,比如给定一个数组a=[1,2,3,4,5,6,7],函数输入数组元素的和,即28。
时间: 2024-10-17 19:02:56 浏览: 35
[例]数组做函数参数的递归调用-函数、预处理
在C语言中,你可以使用递归函数来计算数组元素的和。递归是一种函数调用自己的过程,通常用于解决可以分解为相同问题更小实例的问题。下面是一个简单的示例,函数`recursive_sum`接收数组的起始索引`start`和结束索引`end`作为参数:
```c
#include <stdio.h>
// 递归函数,计算数组从 start 到 end 的元素之和
int recursive_sum(int a[], int start, int end) {
// 基本情况:如果结束索引小于开始索引,返回0表示数组为空
if (start > end)
return 0;
// 如果只有一个元素,直接返回该元素值
else if (start == end)
return a[start];
// 否则,累加当前元素并递归调用自身,处理剩余元素
else
return a[start] + recursive_sum(a, start+1, end);
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7};
int n = sizeof(arr) / sizeof(arr[0]);
int sum = recursive_sum(arr, 0, n - 1); // 起始索引为0,结束索引为n-1(因为数组下标是从0开始的)
printf("数组元素的和为: %d\n", sum);
return 0;
}
```
当你运行这个程序,它会输出数组元素的总和,对于给定的例子 `[1, 2, 3, 4, 5, 6, 7]`,结果就是 `28`。
阅读全文