• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

4. 나이차이 문제 질문입니다.

23.01.03 21:22 작성 조회수 195

0

나이차이 문제에 대한 코드를 작성했습니다. 저는 제 코드에서 M을 최고 나이로, m을 최소 나이로 설정했는데요. 결과를 출력해보니 m에 이상한 숫자가 들어가 있습니다. 저 혼자 생각을 해봐도 잘 모르겠더군요.. 왜 이런 결과가 나오는지 알려주시면 감사할 것 같습니다.

질문_실행결과.png#include <iostream>

using namespace std;

int main()

{

//입력 받기

int N;

cin >> N;

int age_arr[N], i;

for(i=0; i<N; i++)

{

cin >> age_arr[i];

}

//최대 나이 구하기

for(i=0; i<N; i++)

{

if(age_arr[i] > age_arr[i+1])

{

int tmp = age_arr[i+1];

age_arr[i+1] = age_arr[i];

age_arr[i] = tmp;

}

}

int M = age_arr[N-1];

cout << "M: " << M << endl;

//최소 나이 구하기

for(i=0; i<N; i++)

{

if(age_arr[i] < age_arr[i+1])

{

int tmp = age_arr[i+1];

age_arr[i+1] = age_arr[i];

age_arr[i] = tmp;

}

}

int m = age_arr[N-1];

cout << "m: " << m << endl;

//최대의 나이차이 구하기

cout << M-m;

return 0;

}

답변 1

답변을 작성해보세요.

0

안녕하세요^^

반복문을 N-2까지만 돌려야 i+1 지점이 N-1 지점이 되어 배열의 마지막 공간이 됩니다.

for(i=0; i<N-1; i++) //이렇게 해야 에러가 없습니다.