Rechercher : dans
Par :

Tirage aleatoire sans remise

Dernière réponse le 27 avr 2008 à 21:25:55 mahouda, le 26 avr 2008 à 08:50:13 
 Signaler ce message aux modérateurs

Bonjour,
je veux que mon programme affiche une lettre parmis 5 lettres aleatoirement mais à condition que la lettre qui s'est deja apparu ne se repette plus;j'ai reussi à faire un programme qui affiche une lettre aleatoirement mais sans la condition de l'apparition de la lettre une seule fois .voici le programmme dont je vous ai parlé:




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

int main (void)
{
int entier ;
char son[4];

srand (time (NULL));


entier=1+rand() % 5;

printf("%d\n",entier);
switch(entier)
{
case 1:
son[0]='m'; son[1]='a';son[2]='\0';break;
case 2:
son[0]='t';son[1]='a';son[2]='\0';break;
case 3:
son[0]='r';son[1]='a';son[2]='\0';break;
case 4:
son[0]='b';son[1]='o';son[2]='n';son[3]='\0';break;
case 5:
son[0]='c';son[1]='o';son[2]='\0';break;
}
printf("le mots que vous devez chercher contient le son: %s \n",son) ;



system("pause");
return 0;

}

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « tirage aleatoire sans remise » dans :
Générer des nombres aléatoires efficacement avec rand() VoirGénérer des nombres aléatoires efficacement avec rand() Vous avez peut-être remarqué qu'en C, en utilisant la fonction rand() de la bibliothèque standard, vous obtenez des résultats décevants, trop souvent les mêmes. Prenons un exemple, vous...
[Excel] Ajouter une date fixe dans une cellule VoirSi vous souhaitez insérer la date du jour en cours dans une cellule, au format JJ/MM/AAAA, et que celle-ci reste fixe, sans remise à jour à chaque ouverture du fichier (par exemple pour indiquer la date de création du fichier): Tapez simplement ...
[MSN] Utiliser MSN sans l'installer - à partir d'un site VoirIl est possible d'utiliser un client MSN pour discuter avec ses amis sans avoir à l'installer. Il existe quelques clients conçus pour être utilisés à partir d'un navigateur sous forme de pages Internet. Évidemment, leurs fonctionnalités sont...
Réseaux sans fil - Wireless Networks VoirQu'est-ce qu'un réseau sans fil Un réseau sans fil (en anglais wireless network) est, comme son nom l'indique, un réseau dans lequel au moins deux terminaux (ordinateur portable, PDA, etc.) peuvent communiquer sans liaison filaire. Grâce aux...
WLAN (Réseaux locaux sans fil) - Wireless LAN VoirRéseaux locaux sans fil (WLAN) Le réseau local sans fil (noté WLAN pour Wireless Local Area Network) est un réseau permettant de couvrir l'équivalent d'un réseau local d'entreprise, soit une portée d'environ une centaine de mètres. Il permet de...
La sécurité des réseaux sans fils Wi-Fi (802.11 ou WiFi) VoirUne infrastructure adaptée La première chose à faire lors de la mise en place d'un réseau sans fil consiste à positionner intelligemment les points d'accès selon la zone que l'on souhaite couvrir. Il n'est toutefois pas rare que la zone...

1

choubaka, le 26 avr 2008 à 09:08:02

Salut

une solution serait de stocker les lettres au fur et à mesure dans une structure de données (un arraylist par exemple) et lors de la désignation des autres lettres contrôler dans cette structure si elle n'y est pas déjà présente. si c'est le cas, il faut recommencer la recherche aléatoire jusqu'à ce que se soit correct.

J'espère avoir été clair.

donc en gros l'algo donnerait ceci

1. Désignation aléatoire de la première lettre
2. stockage dans l'arraylist
3. désignation de la lettre suivante
4. contrôle de l'arraylist
5. si contrôle ok, retour au point 2
6. si pas ok, retour au point 3

voilà

Chouba,
Pochard d'assaut ..

Répondre à choubaka

2

mahouda, le 26 avr 2008 à 09:36:55

Merci beaucoup,je suis entrain d'appliquer ce que vous m'avez dit et je vous le postulerai quand je termine pour voir ce qui va donner;
merci encore une fois

Répondre à mahouda

3

mahouda, le 27 avr 2008 à 01:41:38

Je suis de retour.
voici ce que j'ai trouvé mais il n'a pas bien fonctionné;


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

int tirageAleatoire(void)
{
int entier ;


srand (time (NULL));
entier=1+rand() % 5;


return (entier);

}
void affichage(int entier)
{

char son[4];
switch(entier)
{
case 1:
son[0]='m'; son[1]='a';son[2]='\0';break;
case 2:
son[0]='t';son[1]='a';son[2]='\0';break;
case 3:
son[0]='r';son[1]='a';son[2]='\0';break;
case 4:
son[0]='b';son[1]='o';son[2]='n';son[3]='\0';break;
case 5:
son[0]='c';son[1]='o';son[2]='\0';break;
}
printf("le mots que vous devez chercher contient le son: %s \n",son) ;
}

int main (void)
{
char son[4];
int entier;
int *p=NULL;
int i=1;int j=1;
p=(int *) malloc(sizeof(int));
entier=tirageAleatoire();
affichage(entier);
p[i]=entier;
do{

do{
entier=tirageAleatoire();
}while(p[i]==entier);

affichage(entier);
i=i+1;
p[i]=entier;
}while(i<=5);




system("pause");
return 0;
}

Répondre à mahouda

4

mahouda, le 27 avr 2008 à 14:27:33

Bonjour,
aidez moi s'il vous plait...

Répondre à mahouda

5

mahouda, le 27 avr 2008 à 15:25:14

Help...................................

Répondre à mahouda

6

 choubaka, le 27 avr 2008 à 21:25:55

Quel est l'erreur?

Chouba,
Pochard d'assaut ..

Répondre à choubaka