【发布时间】:2020-11-25 16:54:37
【问题描述】:
#include <iostream>
using namespace std;
int main()
{
int n, arr[10], i, j, temp, minin;
cin >> n;
for (i = 0; i < n; i++)
{
cin >> arr[i];
}
for (i = 0; i < n - 1; i++)
{
minin = i;
for (j = i + 1; j < n; j++)
{
if (arr[j] < arr[minin])
minin = j;
temp = arr[minin];
arr[minin] = arr[i];
arr[i] = temp;
}
}
for (i = 0; i < n; i++)
{
cout << arr[i];
}
return 0;
}
没有编译时错误。但是我的代码没有正确排序。
这是我得到的:
输入:
4 //size of the array to be sorted
5 3 2 8 //actual array to be sorted
输出:
3528
预期的输出是升序排序的数组。
【问题讨论】:
-
请显示程序给出的输入和错误输出。
-
不要为 C++ 问题标记 C。数据结构标签也无关紧要。
-
如果 n > 10,您的程序将失败。
-
@schorsch312:是的,调用
std::sort无法让学生练习编写代码和学习语言。 -
请提及必要的改动 -- 编程不是这样工作的。如果您的程序有错误,并且您编写了代码,那么您负责启动调试代码的过程,而不是我们或其他任何人。学习如何调试自己的代码是学习如何编写程序的一部分。 How to debug small programs。继续要求其他人调试代码会导致投反对票。
标签: c++ selection-sort