0
저는 C++을 가르치고 있습니다. 사용자가 입력 한 int 값을 가진 배열을 다른 함수로 전달하여 배열을 정렬하고 콘솔에 전달하는 방법을 배우고 있습니다. 나는 배열 자체를 전달하는 것을 테스트했다. 그러나 작동한다. 그러나 하나의 숫자가 어떻게 중복되는지에 따라 정렬은 어딘가에서 엉망이된다. 이것은 교환을위한 나의 코드입니다.어레이 스왑/정렬 배열 번호 복사
while(1){
swapped = 0;
for(int i4 = 0; i4 < count; i4++){
if(sdata[i4] > sdata[i4 + 1]){
int temp = sdata[i4];
sdata[i4] = sdata[i4 + 1];
sdata[i4 + 1] = temp;
swapped = 1;
}
}
if(swapped == 0){
break;
}
}
이것은 실행시 반환되는 값입니다.
How many numbers? 5
[1] Please enter a value: 5
[2] Please enter a value: 3
[3] Please enter a value: 1
[4] Please enter a value: 2
[5] Please enter a value: 4
Original numbers: 5 3 1 2 4
Swapped numbers: 1 2 3 3 4
스왑 자체를 테스트하기 위해 새 파일에서 스왑을 다시 작성하려고했지만 어떤 이유로 작동하지 않습니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?
count'가 액세스, sdata' '항목 수가있다'가정'SDATA [I4 + 1]'정의되지 않은 동작 결과 배열 범위 밖에 . – 1201ProgramAlarm