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 :

[Débutant] remise à 0 d'une variable


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de grand_prophete
    Inscrit en
    Avril 2005
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 85
    Par défaut [Débutant] remise à 0 d'une variable
    Bonjour à tous !

    Voila, je débute en c, niveau gros naz. Je fais un exo où je dois dire quel jour de la semaine tombe chaque année noël de ce siècle en tenant compte des années bissextiles. Les jours de la semaines sont dans un tableau et ma variable i permet de selectionner le jour. Je rentre l'année de mon choix quand je lance mon programme et une boucle for permet d'incrémenter une variable "year" jusqu'a atteindre l'année choisie. i s'incrémente en même temps de 0 à 6 et doit repasser ensuite à 0, en boucle. Seulement je n'arrive pas à la remètre à 0 au bon moment. i ne doit pas atteindre 7 et le fait pourtant, elle ne se remet à 0 que quand elle atteint 8.
    Une idée quelqu'un ? Merci

    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
     
     
     int i=0, annee, year;
      char jour[7][9] = {"lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche"};
        printf("choisissez l'annee : ");
        scanf("%d", &annee);
        for(year=2000;year<annee;year++)
    	{	
    		if (i<=6 && i!=3)
    		i=i++;
    		else if (i==3)
    		i=i+2;
    		else if (i>6) 
    		i=0; 
    	}   
        printf("\nNoel tombe le %s 25 de l'annee %d \n",jour[i],annee);
    	printf("\nNoel tombe le 25-12-%d\n",annee);
        printf("%d %d\n",i, year);

  2. #2
    Membre confirmé Avatar de grand_prophete
    Inscrit en
    Avril 2005
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 85
    Par défaut
    Bon évidemment, j'ai cherché des heures, et c'est quand je demande que je trouve la solution...

  3. #3
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    Bon évidemment, j'ai cherché des heures, et c'est quand je demande que je trouve la solution...
    En utilisant le debugger et le mode pas à pas, tu n'y aurais passé que quelques minutes.

    Niveau code:
    Voit du côté de fgets à la place de scanf, ca t'évitera surement de futurs problèmes.

  4. #4
    Membre confirmé Avatar de grand_prophete
    Inscrit en
    Avril 2005
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 85
    Par défaut
    J'ai essayé le pas à pas mais il reste bloqué à un moment (avant que je n'entre la date voulu). En fait j'suis en train de voir le problèmes des années bissextiles.
    Merci pour les réponses

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2005
    Messages : 88
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (i<=6 && i!=3)
    		i=i++;
    Quand i = 6, tu incrémentes i, donc i = 7.

  6. #6
    Membre confirmé Avatar de grand_prophete
    Inscrit en
    Avril 2005
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 85
    Par défaut
    Citation Envoyé par frenchi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (i<=6 && i!=3)
    		i=i++;
    Quand i = 6, tu incrémentes i, donc i = 7.

    Ben oui, j'étais sur que ce serait un truc débile comme ça juste sous mon nez

  7. #7
    Membre confirmé Avatar de grand_prophete
    Inscrit en
    Avril 2005
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 85
    Par défaut
    Bon c'est bon j'ai fini et testé mon programme, ça marche avec les années bissextiles. (job il est content)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] [Débutant] - Récuperer nombres dans une variable
    Par barbit dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/07/2011, 13h57
  2. [Débutant] string map avec une variable en argument
    Par barthelv dans le forum Tcl/Tk
    Réponses: 1
    Dernier message: 27/08/2010, 16h49
  3. Réponses: 5
    Dernier message: 14/06/2010, 18h30
  4. [Débutant] Ne pas évaluer une variable
    Par barthelv dans le forum Tcl/Tk
    Réponses: 2
    Dernier message: 21/05/2008, 11h30
  5. [débutant] Comment savoir si une variable est définie
    Par guidav dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/11/2006, 17h47

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