【发布时间】:2020-05-05 03:25:57
【问题描述】:
我正在尝试用 C 编写递归函数,
给定一个数组、数组的大小以及元素 int 目标,我想找到 int 目标最后一次出现的索引。
#include <stdio.h>
int rLookupAr(int array[], int size, int target);
int main()
{
int numArray[80];
int target, i, size;
printf("Enter array size: \n");
scanf("%d", &size);
printf("Enter %d numbers: \n", size);
for (i=0; i < size; i++)
scanf("%d", &numArray[i]);
printf("Enter the target number: \n");
scanf("%d", &target);
printf("rLookupAr(): %d", rLookupAr(numArray, size, target));
return 0;
}
int rLookupAr(int array[], int size, int target)
{
}
但是,我已经被困了好几个小时了。
我是递归函数的初学者,非常感谢任何帮助!
一些例子:
Enter array size:
5
Enter 5 numbers:
2 1 3 2 4
Enter the target number:
2
rLookupAr(): 3
【问题讨论】:
-
您是否热衷于使用尾递归或“正常”递归的方法?请注意,后者的堆栈内存使用不合理,如果您不小心,可能会导致堆栈溢出。
-
请将此处示例的所有输入替换为固定值。无论如何,
rLookupAr是做什么的?里面没有一行代码! -
我可能会使用某种修改后的二分搜索。
-
rLookupAr 是我需要写的递归函数,但我卡住了
-
您是否在课堂上学习过“纯函数式”语言和理论?如果您考虑一下
head()和tail()在类似 Lisp 的语言中的工作方式,它可能会有所帮助。 en.wikipedia.org/wiki/CAR_and_CDR
标签: c