Заполнить одномерный массив, случайными уникальными числами
Есть одномерный массив 4, его нужно заполнить рандомными числами через rand(), и они обязательно должны быть уникальными. Самое важное, все нужно сделать по шаблону который я привел ниже.
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
setlocale(0, "Rus");
srand(time(NULL));
bool game;
int arr[4];
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4;)
{
game = true;
arr[j] = rand() % 16;
for (int k = 0; k < j; k++)
{
if (arr[k] == arr[j])
{
game = false;
}
}
if (game == true)
{
j++;
}
}
}
Ответы (1 шт):
Автор решения: wololo
→ Ссылка
Вот, ваш код с минимальными изменениями:
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
srand(time(NULL));
bool game;
int arr[4][4];
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4;)
{
game = true;
arr[i][j] = rand() % 16;
for (int r = 0; r < 4; r++)
for (int c = 0; c < 4; c++)
{
if (r == i && c == j)
{
r = c = 4;
continue;
}
if (arr[r][c] == arr[i][j])
{
game = false;
r = c = 4;
}
}
if (game == true)
{
j++;
}
}
}
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
cout << arr[i][j] << " ";
cout << "\n";
}
}
Возможный вывод:
3 11 1 10
0 15 8 4
12 7 9 5
13 2 14 6