#include<iostream>
#include<cmath>
using namespace std;
void search(int *a, int begin, int end, int t) //找t在数组a中的位置
{
if(begin>end) //参数错误
{
cout<<"parameter error! can not find!"<<endl;
}
else if((begin == end) && (a[begin] != t)) //t不在数组a中
{
cout<<"can not find!"<<endl;
}
else if(a[begin] == t) //找到t,输出位置
{
cout<<"t在数组a中的位置为:"<<begin+1<<endl;
}
else
{
int temp=abs(a[begin]-t);
search(a,begin+temp,end,t);
}
}
void main()
{
int a[10]={4,5,6,5,6,7,8,9,10,9}; //测试用例
int t=9; //要搜索的数
search(a,0,9,t);
}
#include<cmath>
using namespace std;
void search(int *a, int begin, int end, int t) //找t在数组a中的位置
{
if(begin>end) //参数错误
{
cout<<"parameter error! can not find!"<<endl;
}
else if((begin == end) && (a[begin] != t)) //t不在数组a中
{
cout<<"can not find!"<<endl;
}
else if(a[begin] == t) //找到t,输出位置
{
cout<<"t在数组a中的位置为:"<<begin+1<<endl;
}
else
{
int temp=abs(a[begin]-t);
search(a,begin+temp,end,t);
}
}
void main()
{
int a[10]={4,5,6,5,6,7,8,9,10,9}; //测试用例
int t=9; //要搜索的数
search(a,0,9,t);
}