IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

remplir un tableau sans doublons ...


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7
    Points : 1
    Points
    1
    Par défaut remplir un tableau sans doublons ...
    bonjour,

    je suis en plein apprentissage mais je patauge : lors de mon cours (algorithmie) l'on nous a demandé de remplir un tableau de facon aleatoire (jusque-la ok ) mais sans aucun doublons, alors la ... .
    je viens d' y passer 5 heures mais je n'ai pas encore les connaissances necessaires.ceci dit j'ai horreur de ne pas comprendre donc si vous pouviez m'aiguiller ou m'expliquer svp.
    voila ce que j'ai fait pour l'instant :
    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
     
    # include <stdio.h>
    # include <stdlib.h>
     
    int tab[9];
    int i=0;
     
    main() {
     
    	do {
    		tab[i] = rand()%10;
    		printf ("\nvaleur %d : %d", i, tab[i]) ;
    		i++;	
     
    	} while ( i<10 );
     
    	printf("\n\n");
    }
    autre chose , j'avais commencé par une boucle for mais je declare un tableau avec 10 emplacements et cela s'arrete au 9 ieme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # include <stdio.h>
    # include <stdlib.h>
     
    int tab[9];
    int i;
     
    main() {
    	for (i=0; i<9; i++){ 
     
    		tab[i]=rand()%10;
    		printf("\nLigne %d : %d", i, tab[i]);
    	}
    	printf("\n");
    }
    la sortie du premier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ryo@LFS ~ $ ./test 
     
    valeur 0 : 3
    valeur 1 : 6
    valeur 2 : 7
    valeur 3 : 5
    valeur 4 : 3
    valeur 5 : 5
    valeur 6 : 6
    valeur 7 : 2
    valeur 8 : 9
    valeur 9 : 1
    celui du deuxieme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ryo@LFS ~ $ ./test2
     
    Ligne 0 : 3
    Ligne 1 : 6
    Ligne 2 : 7
    Ligne 3 : 5
    Ligne 4 : 3
    Ligne 5 : 5
    Ligne 6 : 6
    Ligne 7 : 2
    Ligne 8 : 9
    desole si cela a deja poste , j'ai bien chercher une dizaine de pages et via le moteur mais je n'ai rien trouve.
    merci par avance.

    ps : ah oui , je ne retourne pas en cours avant deux semaines, c'est pour eviter ma desiocialisation que je poste

  2. #2
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut Re: remplir un tableau sans doublons ...
    tout d'abord bienvenu à toi sur le forum de developpez

    Citation Envoyé par ryo-san
    bonjour,

    je suis en plein apprentissage mais je patauge : lors de mon cours (algorithmie) l'on nous a demandé de remplir un tableau de facon aleatoire (jusque-la ok ) mais sans aucun doublons, alors la ... .
    je viens d' y passer 5 heures mais je n'ai pas encore les connaissances necessaires.ceci dit j'ai horreur de ne pas comprendre
    je connais ça
    donc si vous pouviez m'aiguiller ou m'expliquer svp.
    si c'est demandé aussi poliment....

    alors en fait je pense que à chaque fois que tu tire un nombre au hasard,tu dois d'abord t'assurer qu'il ne figure pas déja dans le tableau avant de l'y inserer(tu parcours ton tableau en comparant chaque elemnt avec ton nombre),si il n'y figure pas alors tu l'insere dans le tableau,si non tu tire un autre nombre aleatoire et tu refait la meme chose.
    voilà pour la partie algorithmie,MAIS il y a tout de mème un petit problème c'est que en theorie,cet algorithme peut tourner indefiniment vu que rand() peut donner un nombre dejà present dans le tableau une infinité de fois.En pratique je sais pas mais je pense que ça ira.

    voilà,je te laisse le soin d'implementer tout ça.
    Si tu n'y arrive pas n'hesite pas à poster


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut
    bien le bonjour,

    Citation Envoyé par ryo-san
    je suis en plein apprentissage mais je patauge : lors de mon cours (algorithmie) l'on nous a demandé de remplir un tableau de facon aleatoire (jusque-la ok ) mais sans aucun doublons [...] mais je n'ai pas encore les connaissances necessaires.[...]si vous pouviez m'aiguiller ou m'expliquer svp.
    la methode a suivre est la suivante :
    tu crees une boucle qui tourne autant de fois que tu veux de nombres dans ton tableau. Et a chaque tour de boucle tu generes un nombre tant qu'il est deja present dans le tableau.

    pour ce qui est de ton probleme de tableau a neuf cases, il faut faire
    ou
    pour obtenir 10 tours de boucle

    autre chose, le main doit renvoyer int.
    On pourrait aussi chipoter sur ta methode pour obtenir un nombre aleatoire avec un simple rand()%10 qui peut etre ameliore en suivant le code present dans la faq (ou dans le nouveau cours sur les nombres aleatoires, ecrit par gege, paru tres recemment) ; mais c'est vraiment du chipotage

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    ben, pour remplir ton tableau, si tu as assez peu de valeurs possibles , je puis te conseiller ceci:

    (on va dire X valeurs possibles, pour un tableau de Y cases. Naturellement, X>=Y sinon il y aura forcément des doublons)

    1) Tu vais un tableau de toutes les X valeurs possibles
    2) Tu les mélanges
    3) Tu copies les Y premières valeurs dans ton tableau de destination
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 277
    Points : 230
    Points
    230
    Par défaut Re: remplir un tableau sans doublons ...
    Citation Envoyé par afrikha
    MAIS il y a tout de mème un petit problème c'est que en theorie,cet algorithme peut tourner indefiniment vu que rand() peut donner un nombre dejà present dans le tableau une infinité de fois.En pratique je sais pas mais je pense que ça ira.
    Ca peut arriver mais la probabilité est nulle (autrement dit, tu as beaucoup plus de chances de gagner 1000 fois de suite au loto que de voir ça se produire).

    A part ça, je rejoins Afrikha en tous points.

    Médinoc : en l'occurence, X = Y = 10. Comment mélanges-tu tes tableaux (étape 2), à part en refaisant ce qu'Afrikha a dit (ou équivalent) ?

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Moi, j'avais trouvé une technique en temps garanti fini pour cela:

    En fait de tableau simple, tu utilise un tableau de structures avec deux valeurs, dont l'une est celle que tu veux mettre.

    Pour mélanger le tableau, tu remplis la seconde valeur de chaque structure avec des nombres aléatoires, et tu fais un tri du tableau (avec les fonctions de tri standard) selon cette valeur: Le tableau sera donc trié selon un ordre aléatoire --> aucun problème d'emplacement de rand().

    Pour les amateurs d'algorithmique, la complexité du remplissage est O(n), et celle du tri O(n²) ou O(n log(n)) ---> complexité du tout O(n²) ou O(n log(n)) selon l'algo de tri utilisé.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 277
    Points : 230
    Points
    230
    Par défaut
    [HS]
    Mais tu dois quand même vérifier que chaque nombre aléatoire n'est pas déjà apparu avant, non ? Et cela peut arriver quel que soit l'intervalle dans lequel tu prends ton nombre aléatoire (même si je reconnais que c'est négligeable si tu prends un intervalle beaucoup plus grand que le nombre de données).
    [/HS]

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    ben non, tu vérifies pas. pas la peine de vérifier, c'est tout l'intéret.

    Simplement, deux valeurs ayant le même nombre aléatoire seront cote-à-cote après le tri.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 277
    Points : 230
    Points
    230
    Par défaut
    Ca dépend de ton algorithme de tri. Et je serai pas étonné que ça introduise un biais dans ton ordre, mais j'ai la flemme de vérfier

  10. #10
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Le Furet
    Ca dépend de ton algorithme de tri. Et je serai pas étonné que ça introduise un biais dans ton ordre, mais j'ai la flemme de vérfier
    En effet, le risque est d'avoir 1,2,2,3 au lieu de 1,2,2,3 :-)
    Pas de Wi-Fi à la maison : CPL

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 277
    Points : 230
    Points
    230
    Par défaut
    Non

    Je pensais aux résultats finals. Toutes les permutations ne seraient pas équiprobables. Par exemple, imagine qu'on ait :

    (1,3) (2,2) (3,2) (4,1) (5,3)

    Si je classe par valeurs du 2ème terme, en balayant de gauche à droite et en prenant en cas d'ex aequo le premier qui me tombe sous la main (algorithme stupide, mais c'est pour l'exemple), j'ai :

    (4,1) (2,2) (3,2) (1,3) (5,3)

    Et comme résultat final : 4 2 3 1 5.

    Je privilégie donc les séquences dans lesquelles on trouve des couples de nombres (i,j) avec i<j. Toutes les permutations de (1,2,3,4,5) ne seront pas équiprobables à l'arrivée.

    Bien sûr, ça dépend de l'algorithme de tri, mais tous doivent avoir un biais.

  12. #12
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Je pense que tout celà dépasse ce qui est demandé par ryo-san.

    Je pense que ce qu'il cherche c'est un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    tab est le tableau où ranger les nombres
    n est le nombre d'elements du tableau
    i est un compteur
    k est un compteur
    pour i <- 1 jusqu'à n faire
      faire
         val <- une valeur aléatoire
         k <- 1
         tant que k < i et val != tab[k] faire
             k <- k + 1
         fin tant que
      tant que k < i
      tab[i] <- val
    fin pour
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  13. #13
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Le Furet a écrit:
    Ca peut arriver mais la probabilité est nulle (autrement dit, tu as beaucoup plus de chances de gagner 1000 fois de suite au loto que de voir ça se produire).
    ceci serait vrai si rand() generait des nombres aléatoires,or celle-ci genere des nombres pseudo-aleatoires.
    Pour trancher donc la question de savoir si l'algorithme a une durée finie ou pas ,il faut se pencher sur le fonctionnement de rand()

    P.S:ça reste quand mème du chipotage,d'où ma phrase dans mon precedent poste
    En pratique je pense que ça ira


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  14. #14
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 277
    Points : 230
    Points
    230
    Par défaut
    Citation Envoyé par afrikha
    ceci serait vrai si rand() generait des nombres aléatoires,or celle-ci genere des nombres pseudo-aleatoires.
    Pour trancher donc la question de savoir si l'algorithme a une durée finie ou pas ,il faut se pencher sur le fonctionnement de rand()
    Un générateur de nombres qui renverrait un nombre infini de fois la même chose aurait du mal à être qualifié de pseudo-aléatoire. Franchement, ce problème n'en est pas un.

  15. #15
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    lol

    tout d'abord merci a tous pour les conseils et pour votre acceuil.
    comme la bien remarqué trapd, je voudrais un truc tout simple mais d'apres ce qu'il y a dans ce post , je devrais y arriver, le probleme initial est lié a rand()%10 meme si c'est discutable, le probleme m'a ete expose comme ca.
    pour l'instant j'apprends a manipuler , je vais pas tarder avec les pointeurs donc il y a beaucoup de choses que je n'ai pas saisies mais ce n'est que partie remise.
    je vais creuser un peu tout ca et vous dirais ce que j'ai pu faire ...
    encore merci.

    ps : z'auriez pas une certaine tendance a squatter les posts ?

  16. #16
    Membre averti Avatar de Jack_serious
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 350
    Points : 396
    Points
    396
    Par défaut
    Citation Envoyé par ryo-san
    lol

    ps : z'auriez pas une certaine tendance a squatter les posts ?
    Meme pas vrai d'abord.

    1_ Toute discussion ou debat est enrichissant(e). (Sauf de type trollesque, ca va sans dire)
    2_ Tout est sujet a discussion ou a debat.

    CQFD...
    Don't worry, be serious.
    La vie est courte. Prenez votre temps.

    Jack.

  17. #17
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    je vais devenir fou !

    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
     
    # include <stdio.h>
    # include <stdlib.h>
     
    int tab[9];
    int i;
    int x;
     
     
    int main() {
    	for (i=0; i<10; i++){ 
     
    		x = rand()%10;
     
    	printf ("\nvaleur %d : %d", i, x) ;	
    	}
    	printf("\n");
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ryo@LFS ~ $ ./test2
     
    valeur 0 : 3
    valeur 1 : 6
    valeur 2 : 7
    valeur 3 : 5
    valeur 4 : 3
    valeur 5 : 5
    valeur 6 : 6
    valeur 7 : 2
    valeur 8 : 9
    valeur 9 : 1
    mais
    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
    # include <stdio.h>
    # include <stdlib.h>
     
    int tab[9];
    int i;
    int x;
     
     
    int main() {
    	for (i=0; i<10; i++) { 
     
    		x = rand()%10;
    		tab[i] = x;	
                    printf ("\nvaleur %d : %d", i,tab[i]) ;	
    	}
    	printf("\n");
    }
    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
    ryo@LFS ~ $ ./test2
     
    valeur 0 : 3
    valeur 1 : 6
    valeur 2 : 7
    valeur 3 : 5
    valeur 4 : 3
    valeur 5 : 5
    valeur 6 : 6
    valeur 7 : 2
    valeur 8 : 9
    valeur 1 : 6
    valeur 2 : 2
    valeur 3 : 7
    valeur 4 : 0
    valeur 5 : 9
    valeur 6 : 3
    valeur 7 : 6
    valeur 8 : 0
    valeur 6 : 3
    valeur 7 : 2
    valeur 8 : 6
    valeur 1 : 6
    valeur 2 : 8
    valeur 3 : 7
    valeur 4 : 9
    valeur 5 : 2
    valeur 6 : 0
    valeur 7 : 2
    valeur 8 : 3
    valeur 7 : 2
    valeur 8 : 5
    valeur 9 : 9
    pourquoi ????

  18. #18
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    ok tab [10] et non tab [9] grrr..

  19. #19
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    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 <stdio.h>
    # include <stdlib.h>
     
    int tab[10];
    int i;
    int x;
    int k;
     
     
    int main() {
    	for (i=0; i<10; i++){ 
     
    		x=rand()%10;
    		if (i < 1){
    			tab[i] = rand()%10;
    		}	
    		else{	
    			for (k=0; k<i; k++) {	
     
    				if ( x != tab[k]){
     
    				}
    				else{
    					x=rand()%10;
    					k=-1;
     
    				}	
    			} 
    		tab[i]=x;
    		printf("\nvaleur tab[%d] : %d",i,tab[i]);
    		}
    	}
    printf("\n");
    }
    et voila la bete !
    j'en suis fier comme un turc , vous raconte pas
    merci a vous tous.

  20. #20
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par ryo-san
    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
     
    # include <stdio.h>
    # include <stdlib.h>
     
    int tab[9];
    int i;
    int x;
     
     
    int main() {
    	for (i=0; i<10; i++){ 
     
    		x = rand()%10;
     
    	printf ("\nvaleur %d : %d", i, x) ;	
    	}
    	printf("\n");
    }
    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
     
    #include <stdio.h>
    #include <stdlib.h>
     
    int main (void)
    {
       int i;
     
       for (i = 0; i < 10; i++)
       {
          int x = rand () % 10;
     
          printf ("valeur %d : %d\n", i, x);
       }
    }
    mais
    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
    # include <stdio.h>
    # include <stdlib.h>
     
    int tab[9];
    int i;
    int x;
     
     
    int main() {
    	for (i=0; i<10; i++) { 
     
    		x = rand()%10;
    		tab[i] = x;	
                    printf ("\nvaleur %d : %d", i,tab[i]) ;	
    	}
    	printf("\n");
    }
    Comportement indéfini. 9 cases dans le tableau, 10 valeurs (0-9)
    Codage atroce et non significatif...
    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
     
    #include <stdio.h>
    #include <stdlib.h>
     
    int main (void)
    {
       int tab[9];
       size_t i;
     
       for (i = 0; i < sizeof tab / sizeof *tab; i++)
       {
          int x = rand () % 10;
          tab[i] = x;
       }
     
       for (i = 0; i < sizeof tab / sizeof *tab; i++)
       {
          printf ("valeur %d : %d\n", i, tab[i]);
       }
       return 0;
    }
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. Comment remplir un tableau avec random sans doublon ?
    Par muntu dans le forum Collection et Stream
    Réponses: 15
    Dernier message: 16/07/2010, 09h42
  2. Réponses: 4
    Dernier message: 19/06/2008, 09h41
  3. [MySQL] remplir un MenuDeroulant sans doublon
    Par fred_hot dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/05/2008, 18h52
  4. Comment remplir une liste déroulante avec une macro sans doublons
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/06/2007, 18h34
  5. Tableau sans doublons
    Par raph707 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 19/02/2007, 14h59

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