Un petit coup de pouce pour mon programme svp :)

Résolu/Fermé
totomacko1 Messages postés 118 Date d'inscription dimanche 18 novembre 2012 Statut Membre Dernière intervention 30 juin 2017 - 11 mars 2014 à 18:41
totomacko1 Messages postés 118 Date d'inscription dimanche 18 novembre 2012 Statut Membre Dernière intervention 30 juin 2017 - 11 mars 2014 à 22:22
Bonjour,
Voici ci dessous le début d'un programme dont j'ai enlevé les longs printf. Il a pour but de découvrir si un jeu triche un peu dans ses pourcentages :P
Donc j'explique mon problème, j'aimerai générer une liste de 10 chiffres entre 0 et 100.
Cela commence à "if (Mode = 1)". J'ai mis un compteur afin de répéter 10 fois l'opération, ça marche juste comme sur des roulettes mais le chiffre aléatoire est toujours le même durant ces 10 fois. Une solution svp ? Merci

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

int main()
{
int NombreObtenu = 0, Mode = 0,Compteur = 0;
const int MAX = 100, MIN = 0;

printf("Ce petit programme va vous permettre de voir les chances qu'un ordinateur a de tomber entre 0 et 5 pourcents.\nPour ce faire, ce programme va juste generer un nombre au hasard entre 0 et 100.\nEntrez 1 pour generer une dizaine de nombres ou 2 pour en generer en liste infinie puis validez avec Entrer, dans le cas d'une liste infinie, vous pouvez stopper le programme en bougeant la barre sur le cote de la fenetre qui sert a monter ou descendre\n---Menu---\n1:10 nombres\n2:Une infinite de nombre\n\n\n");
scanf("%d", &Mode);

if (Mode = 1)
{
while (Compteur < 10)
{

srand(time(NULL));
NombreObtenu = (rand() % (MAX - MIN + 1)) + MIN;

if (NombreObtenu > 5)
{
printf("Superieur a 5 _ %d\n", NombreObtenu);
}
if (NombreObtenu < 6)
{
printf("Inferieur a 5 _ %d\n", NombreObtenu);
}

Compteur++;
}

}
}

4 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
11 mars 2014 à 20:30
Bonjour,
L'opérateur de comparaison en C est ==. Donc if(mode==1)
Le srand() ne doit être appelé qu'une fois. Donc à mettre en dehors de la boucle.
Et enfin il manque le return 0;

Cdlt
0
totomacko1 Messages postés 118 Date d'inscription dimanche 18 novembre 2012 Statut Membre Dernière intervention 30 juin 2017 22
11 mars 2014 à 21:51
Merci de ta réponse Freddy
J'avais trouvé la réponse tout seul :)
Et si srand est employé 2 fois mais dans 2 "if" différent c'est pas grave ?
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
11 mars 2014 à 22:18
Ce n'est pas Freddy mais Fiddy ;-).
Et si srand est employé 2 fois mais dans 2 "if" différent c'est pas grave ?
Si. La règle est simple : on ne l'appelle qu'une seule fois. Cela bien sûr ne fera pas planter ton programme mais risque de biaiser la génération des nombres. Donc, tu la mets au début (après la déclaration des variables) et cela ne posera aucun problème.
0
totomacko1 Messages postés 118 Date d'inscription dimanche 18 novembre 2012 Statut Membre Dernière intervention 30 juin 2017 22
11 mars 2014 à 22:22
Oups désolé Fiddy* :P
Et okay, merci du conseil ;)
Mon programme marche, il plante juste à la fin car j'avais pas trop le courage de mettre un menu pour la fermeture ^_^
J'ai juste mis un scanf pour pas que la console se ferme d'elle même :P
0