我在理解递归时遇到了困难。我在这里寻找一些反馈,看看这个程序的外观。使用递归的成员测试
问题::: 写一个名为isMember的递归布尔函数。该函数应接受三个参数:整数数组,指示数组中元素数的整数以及要搜索的整数值。如果在数组中找到该值,该函数应该返回true;如果找不到该值,则返回false。在程序中演示如何使用该函数,要求用户输入一个数字数组和要搜索的值。
我有什么::
#include <iostream>
using namespace std;
bool isMember(int[],int,int);
int main()
{
const int SIZE = 10;
int numSearch;
int elementz[SIZE];
for(int i = 0; i < SIZE; i++)
{
cout << "Element " << i + 1 << "\t";
cin >> elementz[i];
}
cout << "Enter element to search\n";
cin >> numSearch;
bool value = isMember(elementz,SIZE,numSearch);
if(value ==1)
cout << "Element is found\n";
else
cout << "Element not found\n";
return 0;
}
bool isMember(int arr[], int sizze, int num)
{
if(arr[sizze] == num)
return true;
else
isMember(arr,sizze -1, num);
}
对于isMember函数(当sizze为-1时),您将需要一个假的情况。除此之外 - 是的,这是一个递归函数。它应该返回isMember(arr,sizze - 1,num)而不是仅调用isMember(arr,sizze - 1,num),以便返回值可以将调用堆栈向上移至原始调用函数。 – user3486184