Appel aux experts !

Fermé
nikita - 11 nov. 2004 à 02:17
blurk Messages postés 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 - 12 nov. 2004 à 10:10
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

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
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 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 160
11 nov. 2004 à 11:43
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
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 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 160
12 nov. 2004 à 10:10
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