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 :

problème en c roulette


Sujet :

C

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 30
    Par défaut problème en c roulette
    Bonjour,

    J'ai un gros problème avec un projet en c concernant la fonction calculant les gains, j'ai bien ranger les numéros choisis par l'utilisateur dans un tableau et le genre de la mise sur un autre tableau (0 pour un cheval par exemple). J'ai essayer de créér des tableaux (plusieurs pour chaque mise effectuer),mais c'est trop volumineux. Pouvez vous m'aidez s'il vous plait.

    Harmand.

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    Montre-nous les déclarations de tous tes tableaux que l'on puisse comprendre un peu mieux.

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 840
    Billets dans le blog
    1
    Par défaut
    Salut
    Pourquoi ne pas essayer de convertir une mise "complexe" en mise simple ???
    Par exemple jouer 12 euros sur une colonne reviens au même que de jouer 1 euro sur chacun des chiffres de ladite colonne...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 30
    Par défaut
    merci beaucoup les gars.


  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 30
    Par défaut
    ah encore un truc HS :

    si par exemple je créé une structure joueur j possédant un champ j->argent si j'ajoute par exemple 1 à j->argent es ce que j->argent sera modifié car j'ai essayer le code suivant mais j->argent reste le même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Joueur* j=(Joueur*)malloc(sizeof(Joueur));
    double j->argent=300;
    j->argent=j->argent+17;
    printf("%d",j->argent);//et là sa affichera sur la console 300.0000000
    Merci d'avance pour l'aide.

  6. #6
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    Tu fais une erreur. Lorsque tu affectes la valeur 300 à j->argent en réalité tu déclares une nouvelle variable qui porte ce nom. Supprime le mot réservé "double" devant. Ca devrait mieux fonctionner.

  7. #7
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 30
    Par défaut
    j'ai essayer ta proposition alors, j'ai d'abord créé une struct Joueur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    struct joueur{
             double argent;
    };
    typedef struct joueur Joueur;
    puis je créé un joueur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Joueur* j=(Joueur *)malloc(sizeof(Joueur));
    j->argent=300;
    j->argent=j->argent+1;
    printf("%d",j->argent); //sa affiche toujours 300.0000
    es ce la bonne démarche ???
    Merci d'avance.

  8. #8
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    oui. Il faut cependant penser que tu veux afficher un double. %d est fait pour afficher des entiers. Utilises plutôt %0.2f par exemple pour afficher un nombre à virgule avec 2 chiffres après la virgule.

  9. #9
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    %0.2f est pour les float, pour les doubles, ce n'est pas %0.2lf ?

  10. #10
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    Non je ne crois pas. %f semble s'utiliser pour les double. %lf serait plutôt pour les long double. À confirmer toutefois...

  11. #11
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par gerald3d Voir le message
    Tu fais une erreur. Lorsque tu affectes la valeur 300 à j->argent en réalité tu déclares une nouvelle variable qui porte ce nom.
    Je me demande même comment le compilo accepte ça. Toutefois, quand il fait j->argent=j->argent+1 et qu'il affiche j->argent pourquoi tout n'est pas fait sur la nouvelle variable créée...? Normalement ça devrait afficher 301 issu de la nouvelle variable...

    Citation Envoyé par gerald3d Voir le message
    Non je ne crois pas. %f semble s'utiliser pour les double. %lf serait plutôt pour les long double. À confirmer toutefois...
    %f pour les float, %lf pour les double et %Lf pour les long double. Toutefois c'est pas très grave si on n'utilise pas la notation parfaite car printf() sait s'adapter (il connait déjà la variable et son contenu). C'est plus grave surtout pour scanf() car lui il ne sait pas à l'avance ce qu'on va lui mettre...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  12. #12
    Expert confirmé
    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
    Par défaut
    %f pour les float, %lf pour les double et %Lf pour les long double.
    C'est vrai (et impératif) pour fscanf().

    Pour fprintf(), "%f" est pour un double .
    Avec "%lf" le 'l' est ignoré et n'a pas d'action, donc "%lf" marche aussi pour un double.
    La raison est que si on passe un argument float, il sera implicitement converti en double.

  13. #13
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par diogene Voir le message
    C'est vrai (et impératif) pour fscanf().

    Pour fprintf(), "%f" est pour un double .
    Avec "%lf" le 'l' est ignoré et n'a pas d'action, donc "%lf" marche aussi pour un double.
    La raison est que si on passe un argument float, il sera implicitement converti en double.
    Finalement pour une fois on a tous un peu raison

Discussions similaires

  1. [AC-2000] problème Roulettes souris
    Par jclm230759 dans le forum Access
    Réponses: 1
    Dernier message: 22/05/2012, 08h46
  2. [AC-2003] Problème pour désactiver l'évènement roulette de la souris
    Par willytito dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/03/2010, 16h02
  3. [AC-2003] Problème de roulette dans sous-formulaire
    Par buzz73 dans le forum IHM
    Réponses: 4
    Dernier message: 04/08/2009, 13h53
  4. [AC-2003] problème roulette souris
    Par Kalite dans le forum Access
    Réponses: 10
    Dernier message: 16/06/2009, 16h17
  5. Réponses: 2
    Dernier message: 25/10/2007, 10h53

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