C语言编程并写出注释,现有数组 a=[4, 88, 6, 67, 34, 98,111], 编程实现找出数组a中的最大值。 C语言编程并写出注释实现如下数列:1, 2, 3, 5, 8, 13, 21, 34. 5.....的第 20项。 要求:用函数数递归实现
时间: 2024-09-21 10:07:18 浏览: 36
```c
// 定义一个函数find_max用于查找给定整型数组的最大值
// 参数:arr - 输入的整型数组
// 返回值:max_val - 数组中的最大值
int find_max(int arr[], int size) {
// 如果数组只有一个元素,直接返回该元素作为最大值
if (size == 1) {
return arr[0];
}
// 否则,比较第一个元素和剩余元素中的最大值
else if (arr[0] > arr[size - 1]) {
return find_max(arr, size - 1); // 递归调用自身处理剩余部分
} else {
return find_max(arr + 1, size - 1); // 如果第一个不是最大,继续处理下一个
}
}
// 定义另一个函数fibonacci用于计算斐波那契数列的第n项
// 参数:n - 斐波那契数列的项数
// 返回值:fib_n - 第n项的值
int fibonacci(int n) {
// 确保输入的是正整数
if (n <= 0) {
printf("错误:请输入正整数。\n");
return -1;
}
// 基本情况:第一项和第二项分别为0和1
if (n == 1 || n == 2) {
return n - 1; // 因为题目是从1开始计数的
}
// 递归情况:F(n) = F(n-1) + F(n-2)
return fibonacci(n - 1) + fibonacci(n - 2);
}
// 测试数组的最大值
int main() {
int a[] = {4, 88, 6, 67, 34, 98, 111};
int max_val = find_max(a, sizeof(a) / sizeof(a[0]));
printf("数组a中的最大值是:%d\n", max_val);
// 计算斐波那契数列的第20项
int fib_20 = fibonacci(20);
if (fib_20 != -1) {
printf("斐波那契数列的第20项是:%d\n", fib_20);
}
return 0;
}
```
阅读全文