我有以下代碼隨機整理操作
#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不起作用,因爲被零除。 –