C 语言递归数组如何创建?
时间: 2023-03-27 13:05:09 浏览: 92
对于C语言递归数组的创建,可以通过定义一个函数,函数的参数为数组和数组的长度,然后在函数内部进行递归调用,直到数组长度为1时,返回数组的值。具体实现可以参考以下代码:
```c
#include <stdio.h>
int recursive_array(int arr[], int len) {
if (len == 1) {
return arr[];
} else {
return arr[len-1] + recursive_array(arr, len-1);
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr) / sizeof(arr[]);
int result = recursive_array(arr, len);
printf("The sum of the array is: %d\n", result);
return ;
}
```
在上面的代码中,我们定义了一个递归函数`recursive_array`,它的参数为数组和数组的长度。在函数内部,我们首先判断数组的长度是否为1,如果是,则返回数组的第一个元素;如果不是,则将数组的最后一个元素与递归调用的结果相加,最终返回数组的总和。在`main`函数中,我们定义了一个数组`arr`,并计算出它的长度,然后调用`recursive_array`函数,并将结果打印出来。
相关问题
用c语言,用递归方法求数组最大值
好的,以下是一个用递归方法求解数组最大值的 C 语言代码:
```c
#include <stdio.h>
int max(int arr[], int len) {
if (len == 1) { // 只有一个元素时,直接返回该元素
return arr[0];
}
int sub_max = max(arr, len - 1); // 递归求解子数组的最大值
return arr[len - 1] > sub_max ? arr[len - 1] : sub_max; // 返回当前元素和子数组最大值中的较大值
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int len = sizeof(arr) / sizeof(arr[0]);
int m = max(arr, len);
printf("The max value of the array is: %d\n", m);
return 0;
}
```
这个程序首先定义了一个 `max` 函数,它接受一个整型数组和数组长度作为参数,并返回数组中的最大值。如果数组只有一个元素,那么直接返回该元素;否则,递归调用 `max` 函数求解子数组的最大值,然后比较当前元素和子数组最大值的大小,返回较大的那个值。
在 `main` 函数中,我们定义了一个测试用的整型数组,计算出它的长度,然后调用 `max` 函数求解最大值,并将结果打印输出。
c 语言二分法查找递归
下面是C语言实现二分法查找的递归版本代码:
```c
#include <stdio.h>
int binarySearch(int arr[], int l, int r, int x) {
if (r >= l) {
int mid = l + (r - l) / 2;
if (arr[mid] == x)
return mid;
if (arr[mid] > x)
return binarySearch(arr, l, mid - 1, x);
else
return binarySearch(arr, mid + 1, r, x);
}
return -1;
}
int main(void) {
int arr[] = {2, 5, 7, 9, 11, 13, 15};
int n = sizeof(arr) / sizeof(arr[0]);
int x = 11;
int result = binarySearch(arr, 0, n - 1, x);
if (result == -1)
printf("Element is not present in array");
else
printf("Element is present at index %d", result);
return 0;
}
```
在递归实现中,我们首先判断给定的数组区间是否有效(r >= l)。然后,我们计算中间元素索引mid,如果它与要查找的元素相等,我们返回mid。否则,如果中间元素大于要查找的元素,则我们将左半部分作为新的查找区间,并递归调用函数。否则,我们将右半部分作为新的查找区间,并递归调用函数。如果元素不存在,则返回-1。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)