Optimisation programme (pas tirer deux fois un même entier)
Bonjour à tous, je suis tombé sur ce petit défis et j'aimerais optimiser mon programme (moins de lignes ou de façon plus élégante) mais je n'ai plus d'idées.
Mon but et dans mon boucle de sortir des nombres aléatoires entre 0 et 9 et de les afficher uniquement s'ils sont pas sortis exemple : 6152231134 affichera : 615234. J'ai pensé à créer un tableau pour stocker les valeurs sorties et à le remplir uniquement s'il ne contient pas la valeur. Le programme est fonctionnel :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
int main()
{
srand(time(NULL));
int N=50,dedans=0,i,j,size=0;
int* temp = calloc(N ,sizeof(int));
for (i = 0; i < N ; i++) {
int X = rand()%10;
for(j=0;j<size && dedans!=1;j++){ //parcours notre tableau de valeur stockées, on sort si dedans == 1
if(temp[j]==X){
dedans=1;
}
}
if(dedans==0){
//s'il est pas dedans
temp[size]=X;
printf("%d",X);
size++;
}
dedans=0;
}
return 0;
} |
PS: je free mon tableau :D