所以我有以下递归函数:

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 [longest]指向其自己的位置

最佳答案

该函数在return之后不printf任何值。这导致 undefined 的行为。

10-07 14:38