设计递归算法求数组最大值。c语言,手动输入数据
时间: 2024-10-22 20:20:51 浏览: 14
用递归算法编写求一个数组A中的最大元素
5星 · 资源好评率100%
设计一个递归算法求解数组的最大值,我们可以创建一个名为`findMax`的函数,该函数接收一个整数数组和一个当前下标作为参数。当数组只有一个元素时,它是最大值;如果有两个或更多元素,则比较当前元素与下一个元素的较大者,并继续这个过程直到遍历完整个数组。
以下是使用C语言实现的递归算法:
```c
#include <stdio.h>
// 递归函数,查找数组中的最大值
int findMax(int arr[], int n) {
// 基线条件:数组只包含一个元素
if (n == 1)
return arr[0];
// 递归条件:比较第一个元素和第二个元素中的较大者
else if (n > 1)
return (arr[0] > arr[1]) ? arr[0] : findMax(arr + 1, n - 1);
}
int main() {
int size;
printf("请输入数组的大小:");
scanf("%d", &size);
int* array = malloc(size * sizeof(int)); // 动态分配内存
if (!array) {
printf("内存分配失败!");
return 1;
}
printf("请输入数组元素:\n");
for (int i = 0; i < size; i++) {
scanf("%d", &array[i]);
}
int max_value = findMax(array, size);
printf("数组中的最大值是:%d\n", max_value);
free(array); // 释放内存
return 0;
}
```
当你运行这个程序时,它会提示用户输入数组的大小以及每个元素的值,然后返回并打印出数组的最大值。
阅读全文