我直接从书中复制了一个选择排序函数以应用于数组,但它没有正确排序。使用cout打印元素0,10和19给出原始整数。
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();
}
答案 0 :(得分:3)
在你的第一个for
循环中,你最后有一个分号:
for (startScan = 0; startScan < (size - 1); startScan++);
// ------^
你有一个空循环和一段执行一次的代码。