使用指针寻找元素
寻找相同元素的指针,寻找两个数组中第一次出现相同的数
1 //寻找相同元素的指针,寻找两个数组中第一次出现相同的数 2 #include <iostream> 3 4 using namespace std; 5 6 int *search(int *a,int *b,int pa,int pb) 7 { 8 int *ca,*cb; 9 ca=a,cb=b; 10 while(ca<pa+a && cb<pb+b) /*两个数表都未考察完*/ 11 { 12 if(*ca<*cb) 13 { 14 ca++; 15 } 16 else if(*ca>*cb) 17 { 18 cb++; 19 } 20 else 21 { 22 return ca;/*返回在这两个数表中找到相等元素*/ 23 } 24 } 25 return NULL; 26 } 27 28 int main() 29 { 30 int *vp,i; 31 int a[ ]={1,3,5,7,9,18,15,27,29,37}; 32 int b[ ]={2,4,6,8,10,13,14,27,29,37}; 33 cout<<"The elements of array a is:"; 34 for(i=0;i<sizeof(a)/sizeof(a[0]);i++) 35 { 36 cout<<a[i]<<" "; 37 } 38 cout<<endl; 39 cout<<"The elements of array b is:"; 40 for(i=0;i<sizeof(b)/sizeof(b[0]);i++) 41 { 42 cout<<b[i]<<" "; 43 } 44 cout<<endl; 45 vp=search(a,b,sizeof(a)/sizeof(a[0]),sizeof(b)/sizeof(b[0])); 46 47 cout<<"The first same number is:"<<*vp<<endl; 48 return 0; 49 50 }
寻找指定元素的位置
1 // 寻找指定元素的位置 2 #include <iostream> 3 4 using namespace std; 5 6 int search(int *apt,int n,int key)//apt首指针 7 { 8 int *p; 9 for(p=apt;p<apt+n;p++) 10 { 11 if(*p==key) 12 { 13 return p-apt; 14 } 15 } 16 return -1; 17 } 18 int main() 19 { 20 int a[] ={90,80,70,60,50,40,30,20,10,9,8,7,6,5,42,40,50,1,2,3}; 21 int i,key; 22 cout<<"输入key:"; 23 cin>>key; 24 i=search(a,sizeof(a)/sizeof(a[0]),key); 25 cout<<"key位置:"<<i<<endl; 26 return 0; 27 }
转载请说明出处!