제목 그대로 서치인데, 배열에서, 찾고자 하는 값이 2개 이상일 경우 모든 값의 위치를 찾아주는걸 해봤습니다.
#include <stdio.h>
int linear_search(int a[], int size, int val);
int main()
{
int arr[10]={5,8,13,2,4,15,13,17,18,20};
int index, val;
scanf("%d", &val);
for(index=1;index>0;){
index=linear_search(arr,10,val);
if (index<0) printf("Not found.\n");
else printf("%d is found in %d-th position in the array.\n", val,index);
}
return 0;
}
int linear_search(int a[], int size, int val)
{
static int check=0;
int i=0;
for(;check<size;check++){
if(a[check]==val){
i=check; check+=1;
return i;
}
}
return -1;
}
봉봉교수님이 내주신 연습문제에는 하나밖에 찾을 수 없는 구조인데, 함수에 check라는 static variable을 추가해서 그 함수가 호출되었을때 처음 찾은 값 다음부터 탐색하도록 하였습니다. thanks to. 힌트를 준 진경군.