【发布时间】:2018-02-19 18:52:53
【问题描述】:
我正在尝试编写一个递归函数来接收一个数组及其大小和其他一些变量(我的选择)。该函数返回数组中可能的最长升序整数系列的长度。限制是不使用循环,不调用其他函数或使用指针或其他库。
这是我编写的代码,不幸的是它不起作用,我不明白为什么!
length4 = max_set(arr4, size4, 1, 0, 1, 1, 0);
int max_set(int arr[], int size, int max, int index1, int index2, int
currentMax, int i) {
int path1, path2;
if (index1 == size)
return currentMax;
if (index2 == size){
if (currentMax < max)
currentMax = max;
index1 = i + 1;
index2 = index1 + 1;
max = 1;
}
if (arr[index2]> arr[index1]){
path1 = max_set(arr, size, max + 1, index1, index2 + 1, currentMax, i);
path2 = max_set(arr, size, max + 1, index1 + 1, index2 + 1, currentMax, i);
}
path1 = max_set(arr, size, max, index1, index2 + 1, currentMax, i);
path2 = max_set(arr, size, max, index1 + 1, index2 + 1, currentMax,i);
if (path1 > path2)
return path1;
else
return path2;
}
谢谢!
【问题讨论】:
-
这听起来像是学习使用调试器的绝佳机会! (或者失败了,在整个代码中插入大量 printf 语句以查看发生了什么。)
-
你有一个整数数组,最大子串,最大和是什么意思?
-
哎呀对不起!我的意思是升序整数的最长序列。
-
如何包含一个带有函数调用和预期输出的 main(),
-
如果这就是你的意思,那么编辑问题并修复它。
标签: c algorithm recursion substring