我试图用紧凑的指针实现冒泡排序。排序似乎只对前两个进行排序,然后在尝试使用教师提供的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;
}
答案 0 :(得分:1)
这很简单,教授的例程期望数组按降序排列。你的代码看起来对我来说是正确的,但它按升序排序。
顺便说一句,你的教授对setiosflags
如何运作有误解。它应该是
cout << setiosflags(ios_base::fixed);
设置cout
流上的标记。每个流都有它自己的标志,你的教授似乎认为有一套全局标志。 resetiosflags
的错误相同。
答案 1 :(得分:0)
不应该有'do'来做'do {...} while block?
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);
}