#include <stdio.h>
#include <stdlib.h>
typedef int KeyType;
struct ElemType{
int key;
};
int find_seq(struct ElemType arr[],int n,KeyType key){
int i=0;
for(;i<n;i++){
if(arr[i].key==key)return i;
printf("check %d\n",arr[i]);
}
return -1;
}
//较好的提高,for循环里只有一个判断,注意数据不能越界
int find_seq_improved(struct ElemType arr[],int n,KeyType key){
int i=0;
arr[n].key=key; //设置岗哨
for(;;i++){
if(arr[i].key==key) break;
printf("check %d\n",arr[i]);
}
if(i<n)return i;
else return -1;
}
int main()
{
struct ElemType arr[10];
arr[0].key=0;
arr[1].key=11;
arr[2].key=22;
arr[3].key=33;
arr[4].key=44;
arr[5].key=55;
int idx=find_seq(arr,6,554);
printf("idx=%d\n",idx);
int idx1=find_seq_improved(arr,6,554);
printf("idx=%d\n",idx1);
return 0;
}