我被要求創建一個唯一的(沒有兩個數字是相同的)隨機數集合 (用戶輸入行和列維度'd1'和' D2' )我需要幫助檢查二維數組中的重複整數
我完全失去了對如何兩個陣列中的每個元素比較,看它們是否是重複的。
(Max是要生成的最大值)
void RandomArray(IntArrayPtr* m, int d1, int d2, int max)
{
for (int i = 0; i < d1; i++)
{
for (int j = 0; j < d2; j++)
{
m[i][j] = (rand() % max + 1);
if (i > 0 && j > 0)
{
if (m[i][j] == m[i][j - 1] || m[i][j] == m[i-1][j])
{
m[i][j] = (rand() % max+ 1);
}
}
}
}
}
你必須檢查全球unicity,而不是本地。並且畫出一個新的隨機數並不能保證即使是本地的unicity(可能和以前一樣) –
什麼是m [i] [j] =(rand()%10 + 1);'about?在1到10的範圍內有多少*個不同的數字? –
感謝您發現,它應該是(rand()%max + 1)。 –