shiver Posté(e) le 26 octobre 2006 Partager Posté(e) le 26 octobre 2006 Bonjours à tous, Je viens ici car j'ai quelques problèmes, en effet je doit faire un "démineur" en C comme projet pour l'IUT, et pour cela il faut que je génère aléatoirement un tableau de 1 et 0(1 signifie qu'il y a une mine et 0 qu'il n'y en a pas), mais je rencontre de petites difficultés qui sont: J'ai réussie à générer une suite de 1 et de 0 aléatoire, mais j'ai une valeur qui vient de nul part voila mon code /*Directives d'inclusion*/ #include<stdio.h> #include<time.h> int main(void) { /*DONNEES D'ENTREE*/ /*variables d'entree initialisees*/ srand(time(NULL)); int a=rand(); /*variables d'entree non initialisees*/ int i; /*VARIABLES RESULTATS*/ /*VARIABLES AUXILIAIRES*/ /*DEBUT DES INSTRUCTIONS*/ for(i=0; i<6; i++){ printf("%d",a); a=rand()%2; printf("\n");} system("PAUSE"); /*Empeche la fenetre de se fermer à la fin du programme(sous windows)*/ return (0); } et voila un exemple de ce que j'obtient 13146 0 1 0 1 0 Mon deuxième problème c'est que je n'arrive pas à remplir un tableau à 2 dimension avec ces nombre aléatoires. je remercie tous ceux qui m'aiderons PS: je suis un première année de DUT informatique Lien vers le commentaire Partager sur d’autres sites More sharing options...
lelegume Posté(e) le 26 octobre 2006 Partager Posté(e) le 26 octobre 2006 Alors pour ton chiffre qui vient de nulle part c'est tout bête ton premier rand tu ne lui donne pas de limite. ENsuite si tu fais comme ça : for(i=0; i<6; i++){ a=rand()%2; // tu prend un nombre aleatoire printf("%d",a); // puis tu l'affiches printf("\n");} ca marchera mieux. Enfin dans tous les cas pour le RAND, fait man rand ( si tu es sous linux) pour voir ce qu'ils conseillent car je crois que rand()% n'est pas optimal Ensuite pour remplir un tableau dim 2... c'est pas bien mechant int matrice [20][20]; for(i=0;i<20;i++) { for(j=0;j<20;j++) { matrice[i][j]=rand()%2; } } et voilà :-) Lien vers le commentaire Partager sur d’autres sites More sharing options...
shiver Posté(e) le 26 octobre 2006 Auteur Partager Posté(e) le 26 octobre 2006 Merci, j'avous que j'étais parti dans des truc bien compliqué.... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 26 octobre 2006 Partager Posté(e) le 26 octobre 2006 On est prié de mettre les tags adéquats sur les titres des posts : [C] pour le langage, et [RESOLU] puisque la solution a été trouvée... (Cf les règles de la section Programmation). Sinon le forum deviendra rapidement illisible ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Quarky Posté(e) le 26 octobre 2006 Partager Posté(e) le 26 octobre 2006 Sinon un petit rappel gentil () : ce serait sympa d'utiliser la balise quand vous en insérez dans vos posts. Lien vers le commentaire Partager sur d’autres sites More sharing options...
shiver Posté(e) le 26 octobre 2006 Auteur Partager Posté(e) le 26 octobre 2006 désolé, le ferais plus.... Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 26 octobre 2006 Partager Posté(e) le 26 octobre 2006 bon, sauf que au passage, il est explicitement marqué dans le man de ne pas utiliser rand() avec un modulo... la formule à utiliser y est d'ailleurs marquée Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 26 octobre 2006 Partager Posté(e) le 26 octobre 2006 Oui enfin bon dans une base 2 et pour un démineur, l'erreur est négligeable Mais de toutes façons '%2' est plus lent que '&1' Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.