I have made a program that generates a random array of numbers. I am aware that if I make a `for` structure to place random numbers, there might be a chance that I will have values that will repeat. For that I made a separate recursive function that keeps looking for duplicates and replace them with other values until there will be only distinct numbers:

```
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int n, m, k, row[100];
int verif(int v[100], int k)
{
    for(int i=0; i<k-1; i++)
        for(int j=i+1; j<k; j++)
            if(v[i]==v[j])
            {
                cout<<".";
                srand(time(NULL));
                v[i]=rand()%100+1;
                return verif(v, k);
            }
             return 1;
}
int main()
{
    k=10, n=10;
    srand(time(NULL));
    row[0]=rand()%n+1;
    srand(row[0]);
    for(int i=1; i<k; i++)
    {
        srand(row[i-1]);
        row[i]=rand()%n+1;
    }
    verif(row, k);
     for(int i=0; i<k; i++)
        cout<<row[i]<<" ";
    return 0;
}

```

I hope you can explain me why does a simple `cout` inside `verif` makes my program to work and why without it nothing works.