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])
    

    =는 대입 연산자이고, ==이 비교 연산자입니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)