게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
c++이분검색(이진탐색?) 엄청 간단한거 질문하나 할게요
게시물ID : programmer_7193짧은주소 복사하기
작성자 : 제에엔장
추천 : 0
조회수 : 1099회
댓글수 : 7개
등록시간 : 2014/12/17 20:35:34
옵션
  • 본인삭제금지
#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를 넣으면 실행이 되구요... 
뭐가 잘못된건지 알수있을까요?ㅠㅠ
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호