Caracter aleatoire

kait93 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
bonjour;



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






const static char tab[] = ("bmrvon");


char code()
{
return (rand () %4);
}
int main() {

char c[6] = {0};
int i,j;

srand(time(0));
/* combinaison géneré par l'ordinateur*/

for(j=0;j<4;j++)

{c[j] = tab[code()];

}

printf("%s\n\n", c);


getch();
return 0;
}
svp,voila ma fonction je veux juste quel me génère des caractères aléatoir unique donc qui ne se répète ps psq la dès que je l'exécute il me donne des 2ou 3caractere qui se ressemble ,merci

1 réponse

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,

Tu peux faire un tableau contenant des chiffres de 0 à X (ou plus), et tu mélanges le tableau. Ainsi, en prenant les n premières valeurs, tu auras la garantie qu'elles sont toutes différentes.

Ou encore plus simple, tu mélanges ton tableau tab.
0
kait93 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
j'ai pas compris ,moi je travail avc des caracter ps des chiffre
0
kait93 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
donc svp vs pouvez m'expliquez bien
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Je la refais.
1er point :
Ta fonction code() renvoie un entier entre 0 et 4 (non compris).
Comme tu l'as signalé, le problème est que rien ne te garantie d'avoir un chiffre différent à chaque appel.
Pour cela, il faut t'y prendre différemment. Tu crées un tableau d'entier que tu mélanges. Par exemple {0,1,2,3}. Après mélange : {2,1,0,3}.
Ensuite, tu lis les différentes valeurs du tableau : 2, 1, 0 et enfin 3. Toutes ces valeurs sont différentes.

2ème point :
Le programme que tu fais semble afficher ta chaîne tab dans le désordre. Donc, autant mélanger la chaîne.
0
kait93 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
nn ma fct renvois un entier et ça me sert a quoi de melanger la chaine
0
kait93 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
je vx dire renvois un char pas un int
0