U E D R , A S I H C RSS

김태진/Search

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말고 구조체로도 해보세요 ㅋㅋ - 서지혜
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:51
Processing time 0.0093 sec