#include <iostream>
using namespace std;
#define max 10
void main()
{
int j,i, temp;
int a[max]= {1,0,3,4,111,7,12,55,8,21};
cout<<"==변경전 배열=="<<endl;
for (j=0; j<max ; j++)
cout<<a[j]<<" ";
for(i=0; i<=max-2; i++){
for ( j=i+1; j<=max-1; j++ ) {
if ( a[i] > a[j] ) {
temp = a[i] ;
a[i] = a[j] ;
a[j] = temp ;
}}}
cout<<endl<<endl;
cout<<"==변경후 배열=="<<endl;
for (j=0; j<max ; j++)
cout<<a[j]<<" ";
cout<<endl;
int data,mid, begin= 0, end = max-1, flag=0 ;
cout<<endl<<"찾는 수 입력 : ";
cin>>data;
cout<<"위치 : "<<'\t';
for (i=0; i<max; i++)
cout<<i<<'\t';
cout<<endl<<"값 : "<<'\t';
for(i=0; i<max; i++)
cout<<a[i]<<'\t';
while(1)
{
mid=(begin+end)/2;
if( a[mid] == data)
{ flag = 1 ; break; }
else if(a[mid] > data )
{ begin = 0; end=mid-1; }
else
{ begin=mid+1; end=max-1;}
if(end<begin)
{ break;}
}
if(flag==1)
cout<<endl<<data<<"는 "<<mid<<"번째에 있습니다"<<endl;
else
cout<<endl<<data<<"는 없습니다."<<endl;
}
이거 실행해서 입력값에 다른거 넣으면 다 실행되는데 22,44,66 등 짝수를 넣으면 실행이 안되더라구요.. 근데 12를 넣으면 실행이 되구요...
뭐가 잘못된건지 알수있을까요?ㅠㅠ