Linear Continuous Search ¶
제목 그대로 서치인데, 배열에서, 찾고자 하는 값이 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. 힌트를 준 진경군.
- 과제를 더 발전시켜보았군요. 좋은 자세입니다. 다음엔 static variable말고 구조체로도 해보세요 ㅋㅋ - 서지혜