我有以下代码随机整理操作
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int a[] = {2, 1, 4, 3, 5, 6, 7, 9, 8, 10, 11};
int n = sizeof(a)/sizeof(int);
int k=0;
for (int i = 0; i < n; i++)
{
k = i + rand() % (n-1-i);
int s = a[i];
a[i] = a[k];
a[k] = s;
}
for (int i = 0; i < n; i++)
{
cout << a[i] << " " << endl;
}
return 0;
}
,但它给了我运行时错误,我知道有很多互联网的方法,只是我选择这样简单的一个大学考试准备,请大家帮我一下是错的?
**是什么错误?** –
可能索引出阵列的边界在k = i + rand()%(n-1-i) –
是的,我已经看到,rand()%0不起作用,因为被零除。 –