Моя проблема в том, что я не могу понять, как убедиться, что функция rand не дает одинаковое число двум разным ячейкам, и если да, то как я могу изменить его, не добираясь до числа, которое уже находится в другой ячейке. if (arr [j]! = -1) потому что у меня была другая функция, которая заполняла некоторые ячейки (-1))
это одна из версий того, как я пытался это сделать (все // остатки от разных попыток)
void fillArr(int arr[], int n)
{
int i,j=0;
for (i = 0; i < n; i++)
{
while (arr[j] == arr[j + 2] &&j + 2<n)
{
//srand(time(NULL));
if (arr[j] != -1)
{
if (j % 2 == 0)
{
arr[j] = rand() % (N - 1);
if (arr[j + 2] != -1)
arr[j + 2] = rand() % (N - 1);
//arr[i] = rand() % (N - 1)-rand()%(i-1);
srand(time(NULL));
}
else
{
arr[j] = rand() % (N - i);
arr[j + 2] = rand() % (N - 1);
//arr[i] = rand() % (N - 1) - rand() % (i +1);
//srand(time(NULL));
}
}
j++;
}
}
}