#include <stdio.h>
#define MAX 10
int main()
{
int arr[MAX];
int i, j=1;
int HIGH, LOW, MID;
//배열 공간 초기화
for(i=0 ; i<MAX ; i++)
{
arr[i] = j;
j += 2;
}
printf("0을 입력하면 종료");
while(1)
{
bool state(1);
int key;
LOW = 0;
HIGH = MAX;
MID = (LOW+HIGH)/2;
//배열 공간의 내용을 보여줌
for(i=0 ; i<MAX ; i++)
{
printf("%2d번지 : %2d\n", i+1, arr[i]);
}
//키 값을 입력
printf("\nkey값을 입력하세요 : ");
scanf("%d", &key);
if(key <= 0) return 0;
//2진 검색
while(state == 1)
{
MID = (LOW+HIGH)/2;
if(arr[MID] == key)
{
printf("%d번지에 있습니다.\n\n", MID+1);
state = 0;
}
if(key < arr[MID])
{
if(arr[MAX-1]<key)
state = 0;
HIGH = MID-1;
}
if(key > arr[MID])
{
LOW = MID+1;
}
}
//printf("값이 없습니다.");
}
return 0;
}