Forum Clubic

Programme en c

bonjour je vous présente mon soucis: je veux simulé 2 lancer de de a 6 face en même temps a chaque fois que j’appuie sur entrée il me fait une simulation et au bout de 10 simulation le programme quitte voici mon début de code:

Hum. Tu dois savoir que rand() c’est pas trop la bonne fonction pour de l’aléatoire. D’autant que rand() est tout sauf threadsafe (mais dans ton cas, osef).

Où est le problème? Tu veux qu’on fasse tout cela pour toi?

si tu veux oui sa m’arrangerais c’est personnel non pas pour école etc
merci d’avance ^^

Tu en ai ou ^^

Je ne pense pas qu’il faille que tu attendes une solution ‘clé en main’, plutôt une aide sur les points où tu bloques.
Par rapport à ce que tu donnes, tu peux aisément faire évoluer toi même :

  • d’abord un double tirage (deux variables à afficher dans le même printf pour représenter les deux dés
  • puis quand ça marche, inclusion du tirage + affichage dans une boucle à exécuter 10 fois.

Et si ca ne marche pas, tu dis sur quelle ligne tu coinces, en donnant si possible le message d’erreur

et bien j’ai du mal a faire mon code donc comme je debute je voudrais bien comprendre en gros j’ai fai sa,c’est peut etre idio mais je ne sais pas comment faire voila merci

Qu’est-ce qui ne marche pas dans ce que tu as ecrit ?
erreur de compilation ?, mauvaise présentation ?

Ton programme n’effectue actuellement qu’un seul tirage.
Il serait plus intéressant de faire apparaître les deux résultats sur une même ligne

printf(“resultat du lancement : de1 : %d de2 : %d\n”,resultat, resultat11);

ben en fait il me dit 3 erreurs :

mais en ce qui concerne [quote=""]
printf(“resultat du lancement : de1 : %d de2 : %d\n”,resultat, resultat11);
[/quote]
comment definir resultat et resulta1?

merci d’avance

As-tu pensé à définir tes bibliothèques en début de programme (les #include) ?
Sinon, c’est probable la cause de tes problèmes.
Reporte toi à la doc pour savoir à quelle bibliothèque appartient srand().

Pour ce qui est de la ligne printf que je t’ai donnée en exemple, elle est à inclure dans le reste de ton code (à la palace du 2e printf, et tu supprimes le premier)

Et aussi, tu supprimes la deuxième ligne faisant référence à srand(). Une seule initialisation suffit, ensuite rand() assure le tirage aléatoire.
Edité le 02/03/2008 à 20:49

pourrais tu m’expliquer stp? en tout cas voici mon code

www.linux-france.org…

#include <stdlib.h>

cela ne fonctionne pas :s

voici les erreurs :

Edité le 02/03/2008 à 22:52

Copy toujours le code avant tes erreurs… parceque ca peut venir de n’importe quoi. Si t’as fait une modif à ton code précédent y a aucun moyen de savoir d’ou viens l’erreur.

ok voici le code qui induit les 2 erreurs:

Le point-virgule que tu as mis à la fin de ta ligne termine ta fonction !
Du coup, la suite (le contenu des accolades) devient orpheline, d’où le message d’erreur.

Edit :
Dans l’absolu, tu devrais écrire int main(), puisque ta fonction retourne une valeur.
Mais comme int est la valeur par défaut, ça devrait fonctionner quand même.
Edité le 03/03/2008 à 17:56

ce code marche mais qu’une seul fois puis je doit quitter et en plus le résultat 1 m’affiche tout le temps 2 alors que le le résultat 2 pas de rpoblème je comprend pas
et aussi je voudrais le faire autant de fois que je le demande au début
donc mon idé est que je demande d’écrire le nombre puis d’éxécuté autant de fois la simulation que je l’ai demandé
Edité le 03/03/2008 à 18:56

Cherche des informations sur “les boucles en C”.
Tu vas voir cest pas bien compliqué.

oui mais je ne sais pas comment les metre par rapport a mon code :s

Y a des exemples de code partout sur internet pour employer les boucles en C quand meme.

Tu imbriques le code que tu veux répéter dans la boucle :

Une possibilité c’est la boucle ‘while’.

Exemple :


int main()
{
   int compteur = 0;             // Initialiser le compteur

    // Ceci veut dire : répéter la boucle tant que la valeur du compteur est inférieur à 10.
   while(compteur < 10)    
  {
     // Ceci veut dire que tu ajoute 1 à la valeur de ta variable (équivalent à   compteur = compteur + 1)
     compteur++;
  }
   // On sort de la boucle quand la condition de la boucle while n'est plus vraie (compteur >= 10)
}

Tu peux ajouter un printf après compteur++ pour voir l’évolution de ta variable.

Une autre possibilité c’est la boucle ‘for’ :

Exemple :


int main()
{
   int compteur;

// Initialiser compteur à 0; Boucler tant que compteur < 10; et ajouter 1 à compteur à chaque boucle
  for ( compteur = 0; compteur < 10; compteur++) 
  {
    ;// Mettre le code à répéter ici
  }
  // On sort de la boucle quand la condition de la boucle for n'est plus vraie (compteur >= 10)
}

Tu peux mettre un printf dans ta boucle ‘for’ pour voir l’évolution de la variable compteur (comme pour la boucle while)

Voilà ca devrait tu suffire à l’intégrer à ton code.
Montre nous ton code une fois que tu auras intégré ta boucle.
Edité le 03/03/2008 à 19:46

oui sa marche mais mintenant je veux definir le nombre de fois que je veux lancer la simulation en enlevant par <10 ou autre

printf(“combien de lancé ?: "
scanf(”%ld", &nbrdelancé);

est-ce sa?