Appel aux experts !

nikita -  
blurk Messages postés 487 Statut Membre -
salut a tous
je souaite que vous me montrez un petit exemple de la fonction random sur les caractére
par exemple comment afficher un caractére d'une maniére aleatoire ?
et merci d'avance à ceux qui prennent nos questions au sérieux .

5 réponses

Guki
 
Salut!

#include <stdlib.h>

/* la methode bourrine mais rapide */

char c1;
int c2;

c1 = (char)rand();

/* la methode propre mais lente */

do
{
	c2 = rand();
}
while(c2 > 255)
c1 = (char)c2;


En supposant que le langage est du C.
0
Jolkdarr
 
Hello !

c2 > 255 : attention, c2 peut être négatif.

La méthode la plus sûre (marche à tous les coups) et la plus rapide :
unsigned char c;
 c = (unsigned char) ((unsigned int) rand() & (unsigned char) 0xff);

Si tu veux imprimer le caractère, tu dois tester s'il est imprimable avec la fonction isprint() (fichier <ctype.h>).

Take care !
0
blurk Messages postés 487 Statut Membre 160
 
une boucle, pourquoi faire ?
char c2=rand()%255;

non signé ?
unsigned char c2=(unsigned)rand()%255;

compris entre -127 et +127 ?
char c2=(rand()%255)-127;

cordialement
¤
0
nikita
 
merci de votre aide
mais je souaite encore savoir comment supprimer des composante d'une liste de caractére aleatoire ?
comme par exemple un programme qui affiche tout le caractére sauf les voyelles ou vis-versa
et merci encore de votre aide précieuse .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blurk Messages postés 487 Statut Membre 160
 
Soit il suffit de restreindre le champ pour ne pas atteindre certaines valeurs au delà d'une bande (par exemple >4 et <100
Soit l'index de ces éléments ne correspond à aucune limite ni règle,
par exemple ne pas atteindre les éléments 8, 77 et 2748 et c'est à toi de faire un traitement spécifique dans une boucle.

exemple:

int i=0;
do
  {
   i=drand()%10000;
   if( i==8 || i==77 || i==2748) continue;
  }
   while(! i);

on peut imaginer aussi une suite de valeurs aléatoire et un traitement
pour qu'il n'y ait pas de doublons. Mais là non plus ce n'est pas déjà tout prêt, et là aussi il y a 1000 manières de faire.
¤
0