用C语言实现递归的顺序查找解决方法

用C语言实现递归的顺序查找
/*---------------顺序查找函数的调用(递归)---------------------*/

#include <stdio.h>

#define   NUM   67         /*查找的数为67*/
#define   MAXLEN   15

int   seqsearch(int   *,   int,   int);

main()
{
int   n   =   0;
int   array[]   =   {23,   34,   56,   78,   67,   89   ,234,   456,   468,   790,   906,   985};
printf( "%d ",seqsearch(array,   NUM,   n));
}

int   seqsearch(int   *list,   int   searchnum,   int   n)
{

*(list   +   MAXLEN)   =   searchnum;
if   (*(list   +   n)   ==   searchnum)
return   ((n   <   MAXLEN)   ?   n   :   -1);
else
seqsearch(list,   searchnum,   n++);
}

为什么编译之后没有答案,,,望高手指点

------解决方案--------------------
#include <stdio.h>

#define NUM 67 //查找67
#define MAXLEN 15

int seqsearch(int *, int, int);

main()
{
int n = 0;

int array[] = {23, 34, 56, 78, 67, 89 ,234, 456, 468, 790, 906, 985};

printf( "%d ",seqsearch(array, NUM, n));
}

int seqsearch(int *list, int searchnum, int n)
{

// *(list + MAXLEN) = searchnum;这一句没有起到任何作用,可以把它删除了

if (*(list + n) == searchnum)//充分利用指针作用,不错

return ((n < MAXLEN) ? n : -1);
else
return seqsearch(list, searchnum, n+1);//要用return 语句来返回
}

每次返回N都要加1

------解决方案--------------------
int seqsearch(int list[], int searchnum, int n)
{

// *(list + MAXLEN) = searchnum;这一句实际上是非法内存操作,删除
if(n==MAXLEN)return -1;//
if (*(list + n) == searchnum)return n;
return seqsearch(list, searchnum, n+1);
}

标兵是不能加在数组的后面一位的,只能用在前面