下面显示的代码工作正常。它打印在 if 子句中找到的元素的位置并退出。每当找不到元素时,该函数就会运行到 max 并向调用函数返回 0 以指示未找到任何元素。
但是,我正在考虑将找到的元素的位置返回给调用函数而不是打印它。由于返回位置只会返回到函数的早期实例而不是调用函数,所以我很震惊。如何做到这一点?
#include <stdio.h>
#include <stdlib.h>
int RLinearSearch(int A[],int n,int key)
{
if(n<1)
return 0;
else
{
RLinearSearch(A,n-1,key);
if(A[n-1]==key)
{
printf("found %d at %d",key,n);
exit(0);
}
}
return 0;
}
int main(void)
{
int A[5]={23,41,22,15,32}; // Array Of 5 Elements
int pos,n=5;
pos=RLinearSearch(A,n,23);
if(pos==0)
printf("Not found");
return 0;
}