p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Invité de passage
    Inscrit en
    avril 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : avril 2012
    Messages : 2
    Points : 0
    Points
    0

    Par défaut tirage unique soucis en c

    Bonjour à tous,
    Donc voila je dois crée un programme qui doit remplir de façon aléatoire un tableau d'entier mais avec l'unicité de chacun des nombres dans le tableau.
    Pourtant je pensé avoir bien écris le code et pourtant l'unicité des nombres n'y est pas. Pouvez vous me dire pourquoi ?

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    # include <stdlib.h>
    # include <stdio.h>
    # include <time.h>
    void main ()
    {
    	int lotto[7];
    	int i,j,tirage;
     
    	srand ((unsigned)time(NULL));
     
    	for (i=0;i<7;i++)
    	{
    		tirage=(rand()%7)+1;
    		j=0;
    		for (j=0;j<i;j++)
    		{
    			if (lotto[i]==tirage)
    			{
    				tirage=(rand()%7)+1;
    				j=0;
    			}
    			else
    			{
    				j++;
    			}
    		}
    		lotto[i]=tirage;
    	}
    	for (i=0;i<7;i++)
    	{
    		printf ("%d\n",lotto[i]);
    	}
    	system ("pause");
     
    }

  2. #2
    Expert Confirmé Sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2005
    Messages : 5 761
    Points : 14 013
    Points
    14 013

    Par défaut

    Parce que :

    1- Erreur d'indexation :if (lotto[j]==tirage) .

    2- Le else {j++;} n'a aucune raison d'être (double incrément avec le j++ du for)

    3- La remise à 0 de j est incorrecte : j sera incrémenté par le j++ du for et passera à 1. La nouvelle valeur de tirage ne sera donc pas comparée avec lotto[0]

    En reprenant la trame de ton programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    # include <stdlib.h>
    # include <stdio.h>
    # include <time.h>
    int main (void)
    {
    	int lotto[7];
    	int i,j,tirage;
    	srand ((unsigned)time(NULL));
    	for (i=0;i<7;i++)
    	{
    		tirage=(rand()%7)+1;
    		for (j=0;j<i;j++)
    		{
    			if (lotto[j]==tirage)
    			{
    				tirage=(rand()%7)+1;
    				j=-1;
    			}
     
    		}
    		lotto[i]=tirage;
    	}
    	for (i=0;i<7;i++)
    	{
    		printf ("%d\n",lotto[i]);
    	}
    	system ("pause");
    }
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  3. #3
    Invité de passage
    Inscrit en
    avril 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : avril 2012
    Messages : 2
    Points : 0
    Points
    0

    Par défaut

    Merci beaucoup pour ta réponse et la rapidité de ta réponse, mais y'a une chose que je ne saisi pas, pourquoi " j=-1 " ? Et oui pour l'incrément j++ petite erreur d’inattention de ma part.
    Encore merci.

Discussions similaires

  1. Tirage sur dataframe avec identifiant unique
    Par Stepsbysteps dans le forum R
    Réponses: 6
    Dernier message: 12/04/2013, 16h38
  2. soucis de update d'email unique
    Par diengkals dans le forum PHP & MySQL
    Réponses: 18
    Dernier message: 17/10/2012, 11h32
  3. Petit soucis pour insérer une image dans un userform uniquement
    Par panda78 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/07/2012, 11h50
  4. Soucis avec xs:unique
    Par touftouf57 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 16/05/2011, 00h18
  5. Tirage Aléatoire unique ..
    Par FoX_McClouD dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/06/2006, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo