vendredi 11 novembre 2022

c : How to generate random numbers without duplication in a two-dimensional array of languages

I want to put random numbers from 1 to 16 in a two-dimensional array without duplication.

I made a code that eliminates duplicates and puts new random numbers back into the array, but it keeps printing duplicate numbers.

Which part is wrong and why?



#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
        int A[4][4];
        int i, j, k, l;
        int num;
        srand(time(NULL));
        int count;

        for(i = 0; i < 4; i++)
        {
                for(j = 0; j < 4; j++)
                {
                        //Re:
                        num = rand() % 16 + 1;
                        A[i][j] = num;

                        for(k = 0; k <= i; k++)
                        {
                                count = 0;

                                for(l = 0; l <= j; l++)
                                {
                                        if(A[k][l] == num)
                                        {
                                                if(k != i && l != j)
                                                {
                                                        j--;
                                                        count = 1;
                                                        break;
                                                //      goto Re;
                                                }
                                        }
                                }

                                if(count == 1)
                                        break;
                        }
                }
        }

        for(i = 0; i < 4; i++)
        {
                for(j = 0; j < 4; j++)
                {
                       printf("%3d", A[i][j]);
                }
                printf("\n");
        }

}

I want to put random numbers from 1 to 16 in a two-dimensional array without duplication. I made a code that eliminates duplicates and puts new random numbers back into the array, but it keeps printing duplicate numbers.




Aucun commentaire:

Enregistrer un commentaire