Я хочу создать программу в C, которая создает N пар (х, у) случайных чисел, соблюдая следующие условия:Сформировать массив случайных разных чисел
- N представляет собой случайное число в диапазоне от 5 до 13;
- все пары (xi, yi) различны;
- абсолютная разница между всеми х и у элементов, по крайней мере 2.
Я вроде ломать голову, чтобы решить эту проблему. Я думаю, что я должен создать три функции:
- одна функция, которая будет подсчитывать разницу между х и у элемента, который рассчитывается и предыдущие;
- другая функция, чтобы проверить, что все пары разные;
- Последняя функция для вычисления массива.
Пока я писал эти функции:
int different (int i, int N, int adress)
{
// write something to get the array back from the address of first element
int count = 0;
for (int k=0; k<i; k++)
{
if (array[k][0]=array[i][0] && array[k][1]=array[i][1])
count++;
}
return count;
}
/
int distance (int x, int i, int N, int adress)
{
// write something to get the array back from the address of first element
int count=0;
for (int k = 0; k < i; ++k)
{
if (abs(array[i][x]-array[k][x]) < 2)
count++;
return count;
}
}
/
type coordinates (void)
{
N = rand()%8 + 5;
int array[N][2];
for (int i = 0; i < N; ++i)
{
do
{
int x = rand()%60 - 30;
int y = rand()%60 - 30;
} while (different(i, N, adress)>0 || distance(x, i, N, adress) || distance (y, i, N, adress));
array[i][0] = x;
array[i][1] = y;
}
}
На самом деле я не знаю, как дать параметров от одной функции к другой. Я думаю, что я должен использовать указатели, но не знаю, как это сделать.
Если кто-то может мне помочь, мой мозг будет счастлив. Потому что я пытаюсь изменить свою точку зрения на эту проблему, но всегда есть что-то неправильное, что я могу решить.
Спасибо заранее! :)
'N = rand()% 8 + 5;' -> 'N = rand()% (13-5 + 1) + 5;' – chux