Я пытаюсь реализовать пузырьковую сортировку с помощью компактных указателей. Сортировка, кажется, сортирует только первые два, а затем дает сбой при попытке использовать драйвер DisplayValues, предоставленный учителем.
float *Sort(float *first, size_t elements)
{
{
for (didSwap = 0, current = first, next = first + 1; current < last; ++current, ++next)
{
didSwap = 1;
}
}
--last;
}
while (didSwap);
return first;
}
Это довольно просто, процедура профессора ожидает, что массив будет в порядке убывания. Ваш код выглядит правильно для меня, но сортируется по возрастанию.
Кстати, ваш профессор имеет недоразумение о том, как setiosflags
работает. Так должно быть
cout << setiosflags(ios_base::fixed);
установить флаги на cout
поток. У каждого потока свои флаги, у вашего профессора, кажется, есть впечатление, что существует один глобальный набор флагов. Та же ошибка для resetiosflags
,
Разве не должно быть ‘do’, чтобы сделать этот блок ‘do {…} while?
float *Sort(float *first, size_t elements)
{
do
{
for (didSwap = 0, current = first, next = first + 1; current < last; ++current, ++next)
{
didSwap = 1;
}
--last;
}
while (didSwap);
}