【发布时间】:2016-10-09 19:01:17
【问题描述】:
我编写了这个 c++ 函数来对数组进行排序,它可以工作,但它似乎不适用于第一个值:它总是更大而不是更小!
void s_iSort (double a[])
{
cout << "INCREASING SORTER:\n\n";
unsigned int mx,maxx;
double temp;
cout << "Insert maximum element to sort: "; cin>>mx;
for (int c=0; c<mx; c++)
{
maxx=0;
for (int i=c; i<mx; i++)
if (a[i]<a[maxx])
maxx=i;
temp=a[c];
a[c]=a[maxx];
a[maxx]=temp;
}
cout << "\nDONE!\n\n";
}
这是怎么回事?
【问题讨论】:
-
请提供minimal reproducible example(您已经接近)以及输入、预期和实际输出
-
在第一轮
if (a[i]<a[maxx])将与if (a[0]<a[0])相同。然后你就再也不会访问第一个元素了。
标签: c++ sorting selection-sort