gpt4 book ai didi

c - 程序分析(递归)

转载 作者:太空宇宙 更新时间:2023-11-04 01:31:32 24 4
gpt4 key购买 nike

<分区>

我正在上C语言类(class),讲师喜欢在考试中给出一个非常复杂的递归程序并询问函数的调用是做什么的。我想知道一些分析这类问题的方法/技巧。例如,这是一个问题:

下面的程序是什么? (考试时没有电脑)

#include <stdio.h>
#include <conio.h>

int* what(int *arr, int *maxLen, int *curLen)
{
int *res;
if (*arr == -1){
*maxLen = *curLen = 0;
return arr;
}
if (arr[1] == -1 ){
*maxLen = *curLen = 1;
return arr;
}
if (arr[2] == -1 ){
*maxLen = *curLen = 2;
return arr;
}

res = what(arr+1, maxLen, curLen);

if ((arr[1] - arr[2]) * (*arr - arr[1]) > 0 ){
*curLen = *curLen + 1;
if ( *curLen >= *maxLen){
*maxLen = *curLen;
res = arr;
}
}else
*curLen=2;

return res;
}

void main(){
int cur, max, i, j, *res, a[][20]= {{5,-1}, {5,6,-1},
{1,4,5,9,7,6,4,6,9,8,5,4,1,4,5,6,-1}};

for(i=0; i<3; i++){
res = what(a[i], &max, &cur);
printf("max=%d, ",max);
for ( j = 0 ; j < max ; j++)
printf("%d ", res[j]);
('\n');
}
}//end

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com