-2
정렬 정렬 기능을 책에서 바로 복사하여 배열에 적용했지만 올바르게 정렬되지 않았습니다. cout을 사용하여 요소 0, 10 및 19를 인쇄하면 원래 정수가 반환됩니다. C++ 선택 정렬하지 않음
for (startScan = 0; startScan < (size - 1); startScan++);
// ------^
당신이 빈 루프를 한 번 실행되는 코드의 블록을 가지고 : 첫 번째
for
루프에
int main()
{
int startScan, minIndex, minValue;
int exchanges = 0;
int selTestArray[20] = {84, 74, 65, 26, 37, 91, 94, 44, 52, 50, 50, 47, 34, 61, 70, 12, 59, 94, 61, 32};
int size = 20;
for (startScan = 0; startScan < (size - 1); startScan++);
{
minIndex = startScan;
minValue = selTestArray[startScan];
for (int index = startScan + 1; index < size; index++)
{
if (selTestArray[index] < minValue)
{
minValue = selTestArray[index];
minIndex = index;
}
}
selTestArray[minIndex] = selTestArray[startScan];
selTestArray[startScan] = minValue;
exchanges++;
}
cout << exchanges << endl;
cout << selTestArray[0] << endl;
cout << selTestArray[10] << endl;
cout << selTestArray[19] << endl;
cin.get();
}
이러한 문제를 해결하는 올바른 도구는 디버거입니다. 스택 오버플로를 묻기 전에 코드를 단계별로 실행해야합니다. 자세한 도움말은 [작은 프로그램 디버깅 방법 (Eric Lippert 작성)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)을 참조하십시오. 문제를 재현하는 [최소, 완료 및 확인 가능] (http://stackoverflow.com/help/mcve) 예제와 함께 해당 질문을 \ [편집]해야합니다. 디버거. –
정렬이 정렬되지 않습니다. 얼마나 많은 배열이 정렬하면 정렬 정렬 할 것이라고 정렬 할 것이라고? – SergeyA
@Slava 승무원을 게시하기로 결정한 경우 코멘트가 아닌 답변으로 게시하십시오. – CiaPan