Posté(e) le 26 octobre 200618 a 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 Modifié le 26 octobre 200618 a par shiver
Posté(e) le 26 octobre 200618 a 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à :-) Modifié le 27 octobre 200618 a par lelegume
Posté(e) le 26 octobre 200618 a Auteur Merci, j'avous que j'étais parti dans des truc bien compliqué....
Posté(e) le 26 octobre 200618 a 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 !
Posté(e) le 26 octobre 200618 a Sinon un petit rappel gentil () : ce serait sympa d'utiliser la balise quand vous en insérez dans vos posts.
Posté(e) le 26 octobre 200618 a 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
Posté(e) le 26 octobre 200618 a 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'
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.