C++ 질문
조회수 423회
c++ 공부하면서 학생 정보 출력을 만들려고 하는데요.
int main()
{
int Stu[2][20] = { {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20},
{21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40} };
char Name[20] = { 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T' };
int Num;
int Low = 1;
int High = 20;
int Mid = 0;
cout << "학생의 학번을 입력하세요 : ";
cin >> Num;
for (int i = 0; i < 5; i++)
{
Mid = (Low + High) / 2;
if (Num = Stu[0][Mid])
{
cout << "학번이" << " " << Stu[0][Mid] << "인 학생의 이름은 " << Name[Mid] << "이고 번호는 " << Stu[1][Mid] << "번 입니다." << endl;
break;
}
else if (Num > Stu[0][Mid])
{
Low = Mid;
}
else
{
High = Mid;
}
if (Low > High)
{
cout << "Not Found" << endl;
break;
}
}
}
이렇게 하였을때
if (Num = Stu[0][Mid])
{
cout << "학번이" << " " << Stu[0][Mid] << "인 학생의 이름은 " << Name[Mid] << "이고 번호는 " << Stu[1][Mid] << "번 입니다." << endl;
break;
}
이부분의 결과만 자꾸 나옵니다. 입력값을 바꿔도 계속 Mid값만 결과로 출력이 되는데 어느 부분이 잘못된건지 알 수 있을까요?
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
if (Num = Stu[0][Mid])
위의 코드를 아래와 같이 바꾸세요.
if (Num == Stu[0][Mid])
=
는 대입 연산자이고,==
이 비교 연산자입니다.-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력