Не повторяющийся рандом в сдвоенном массиве

Можете помочь? Есть двумерный массив из 0 размером 10 на 10 рандомоно выбираем х и у. Допустим, х=1 и у=1 . Эту клетку мы из 0 делаем 1. Проблема в том что таких точек ( 1 ) у меня должно быть 3 штуки. Как сделать так чтобы при рандоме у меня не выпала та же самая клетка что и при первом рандоме? Допустим при первом рандоме мне выпало х=5 и у=7 и при втором рандоме выпало х=5 и у=7. Как сделать так чтобы точки не повторялись? Код на c++ консоль.


Ответы (1 шт):

Автор решения: ТарасПрогер
#include <iostream>
#include <ctime>
using namespace std;

int main()
{
    srand(time(NULL));
    int arr[10][10] = { 0 };
    const int quantity = 3;


    int row = rand() % 10;
    int column = rand() % 10;
    for (int i = 0; i < quantity; )
    {
        if (arr[row][column] == 1) // без повторений
        {
            row = rand() % 10;
            column = rand() % 10;
            continue;
        }
        ++i;
        arr[row][column] = 1; // mina esti
    }

    system("pause");
    return 0;
}
→ Ссылка