考虑以下查找问题:
输入:n个数的一个序列A={ a1,a2, ..., an } 和一个值v。
输出:下标i使得v=A[i]或者当v不在A中时,v为特殊值NIL。
举例:输入n=5作为数组,若重新输入的数v存在于数组中则返回值为数组下标,不存在则输出100000
伪代码
cpp代码
#include <iostream>
using namespace std;
int search(int arr[],int v,int len);
int main()
{
int Arr[5],v;
cout<<"please input 5 number"<<endl;
for(int i=0;i<5;i++)
cin>>Arr[i];
int length=sizeof (Arr)/sizeof (Arr[0]);//int length=5;
cout<<"please input 1 number again"<<endl;
cin>>v;
int k;//接收返回值
k=search(Arr,v,length);
cout << "back index "<<k<<endl;//数不存在则输出100000
return 0;
}
int search(int arr[],int v,int len)
{
int i;
for(i=0;i<len;i++){
if(arr[i]==v){
return i;
break;
}
}
if(i=len-1)//无此数,则循环完
return 100000;
}
运行结果,输入的数存在数组中
运行结果,输入的数不存在数组中