hosahn   6달 전

안녕하세요! 이번에  C++공부를 시작한 학생입니다. 매우 간단한 문제지만, c++의 내장 함수를 사용 할 때는 문제없이 통과되는데, 제가 직접 문법 공부도 할 겸 Swap을 직접 구현해서 하면 분명 답은 맞게 나오는데 자꾸 틀리다고 하네요...ㅜ 뭔가 포인터의 문법적인 오류가 있는걸까요?? C++ 고수님들 질문드립니다 ㅠㅠ

질문 이외에도 혹시 문법적이나 입력 면에서 ~~이렇게 하면 훨씬 좋습니다, 하는 개선방안 있으면 얼마든지 공유 부탁드립니다!!ㅠㅠ

hjroh0315   6달 전

함수 자체에는 문제가 없습니다. 그러나 그 함수를 사용하는 줄 (24번)에서 문제가 발생하는데, Swap 함수는 포인터 (여기서는 arr이겠죠)와 두 정수를 받아서 두 인덱스의 값을 바꾸는 역할을 하지만, 24번 줄에서는 arr[j+a]와 arr[b-j]를 두 정수로 넘기고 있습니다. 그 결과, arr[j+a]와 arr[b-j]를 인덱스로 취급하여 엉뚱한 원소를 교환하고 있는 것으로 볼 수 있습니다. 이 문제는 arr[j+a]와 arr[b-j]를 각각 j+a와 b-j로 바꿔줌으로 해결 가능합니다.

hosahn   6달 전

엇 그렇군요 ㅋㅋㅋㅋㅋ c++을 너무 어렵게 생각했나보네요!! 저런 간단한 실수일 줄은 몰랐습니다, 감사합니다!

댓글을 작성하려면 로그인해야 합니다.