В данном коде в функции randarr есть ошибка в условии вложенного цикла. Когда i и c равны, сравнение if (arr == arr[c]) всегда будет истинным, что приводит к тому, что значение элемента массива перезаписывается случайным числом. Это может привести к тому, что в массиве будут повторяющиеся числа.
Чтобы исправить эту ошибку, можно изменить условие сравнения на if (arr == arr[c] && i != c), чтобы исключить случай, когда i и c равны.
Исправленный код будет выглядеть так: #include
#include
using namespace std;
void randarr(int arr[], int size);
void coutarr(int arr[], int size);
int main()
{
srand(time(NULL));
const int SIZE = 10;
int arr[SIZE];
randarr(arr, SIZE);
coutarr(arr, SIZE);
return 0;
}
void randarr(int arr[], int size)
{
for (int i = 0; i < size; i++)
{
arr = rand() % 10;
}
bool same;
for (int i = 0; i < size
{
same = false;
for (int c = 0; c < size; c++)
{
if (arr == arr[c] && i != c) //исправление
{
same = true;
}
}
if (same)
{
arr = rand() % 10;
}
if (!same)
{
i++;
}
}
}
void coutarr(int arr[], int size)
{
for (int i = 0; i < size; i++)
{
cout