如何在 C 中处理递归和数组?
所以我有以下递归函数:
int printSeq(int last[], int n, int arr[], int longest){
if(last[longest]==longest) return arr[longest];
printf("%d ", printSeq(last, n, arr, last[longest]));
}
最后一个是一个数组,其位置指向数组。最长的是当前位置。
然而,当我运行它时,我得到了不在数组中的奇怪值。我错过了什么吗?
基本情况是最后一个[最长]指向它自己的位置
So I have the following recursive function:
int printSeq(int last[], int n, int arr[], int longest){
if(last[longest]==longest) return arr[longest];
printf("%d ", printSeq(last, n, arr, last[longest]));
}
last is an array with locations pointing to array. Longest is the current location.
However when I run it I get strange values that are not in the array. Am I missing something?
The base case is when the last[longest] points to its own location
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
该函数在
printf
之后不会返回
任何值。这会导致未定义的行为。The function doesn't
return
any value after aprintf
. This results in Undefined Behavior.