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 :

[debutant] Date du lendemain


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 6
    Par défaut [debutant] Date du lendemain
    Bon voila j'ai un programme a faire , je pense que c'est un grand classique comme programme , vu que je l'ai deja fait dans d'autre langage ( Ocaml entre autres ) , mais la j'ai un probleme , je comprend pas pourquoi il fonctionne pas , j'essaye de le compliler sous Visual studio , ou sous lcc mais niete , je vous mets le code , peut etre qu'il y a des pb de syntaxe mais je vois pas .

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    #include <stdio.h>
    #include <stdbool.h>
     
        struct date {
                int day;
                int month;
                int year;};
     
        bool bissextile (struct date a) {
     
            bool annee_bissextile;
     
            if (  (a.year%4 == 0 && a.year%100 != 0)
                      || (a.year%400 ==0))
     
                annee_bissextile=true;
     
            else
     
                annee_bissextile=false;
     
        return annee_bissextile;}
     
     
     
        int nbofdays (struct date d) {
     
            int day;
            bool bissextile (struct date d);
            const int daypermonth [12]={31,28,31,30,31,30,31,31,30,31,30,31};
     
            if( bissextile(d) && d.month ==2)
     
                days=29;
     
            else
     
                days=daypermonth[d.month-1];
     
        return days;}
     
     
        struct date tomorow_date) {
     
     
            struct date tomorow;
     
     
            if ( today.day != nbofday(today){
     
                tomorow.day=today.day+1;
                tomorow.month=today.month;
                tomorow.year=today.year;}
     
            else if ( today.month ==12) {
     
                tomorow.day=1;
                tomorow.month=1;
                tomorow.year=today.year+1;}
     
            else {
     
                tomorow.day=1;
                tomorow.month=today.month+1;
                tomorow.year=today.year;}
     
        return tomorow;}
     
     
     
        int main(void) {
     
     
            struct date today,tomorow;
            struct date tomorow_date( struct date today);
     
     
            printf("Saisissez la date d'aujourd'hui au format (jj mm aaaa):");
            scanf("%i%i%i", &today.day,&today.month,&today.year);
            printf("\n");
     
            if (today.day<1 || today.day>31)
     
                goto erreur_date;
     
            else if (today.month <1 || today.month>12)
     
                goto erreur_date;
     
            else if (today.year<1585)
     
                goto erreur_date;
     
            tomorow=tomorow_date(today);
            printf("Demain sera la : %i%i%i", tomorow.day,tomorow.month,tomorow.year);
            printf("\n");
     
            erreur_date : printf("La date n'est pas valide\n");
     
        return 0;}

    Merci et bye

  2. #2
    Membre éclairé Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Par défaut Re: [debutant] Date du lendemain
    Citation Envoyé par hunter69fr2002
    mais la j'ai un probleme , je comprend pas pourquoi il fonctionne pas , j'essaye de le compliler sous Visual studio
    Salut,

    Peux tu mettre le message du compilo stp car on a pas tous VisuaC..

  3. #3
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: [debutant] Date du lendemain
    Citation Envoyé par hunter69fr2002
    Bon voila j'ai un programme a faire , je pense que c'est un grand classique comme programme , vu que je l'ai deja fait dans d'autre langage ( Ocaml entre autres ) , mais la j'ai un probleme , je comprend pas pourquoi il fonctionne pas , j'essaye de le compliler sous Visual studio , ou sous lcc mais niete , je vous mets le code , peut etre qu'il y a des pb de syntaxe mais je vois pas .
    • nbofdays(): days n'est pas défini. Par contre day est défini... Ne pas recopier mais copier/coller.
    • On ne met pas de prototype déparé dans une fonction. Ici, il n'y en a pas besoin, si on suit le principe "définir avant d'utiliser" (ce qui est le cas).
    • tomorow_date(): manque une '(' et un 'void' si pas de paramètres...
    • if : manque un ')'
    • 'today' n'est pas défini. C'est le paramètre qui manque ?
    • tomorow_date(): 'nbofday' n'est pas défini. Il existe un 'nbofdays()'...
    • Il est conseillé de passer l'adresse des structures plutôt que les structures elles-mêmes. C'est plus efficace.
    • Les goto, on évite. Il y a suffisament de structures de codes en C pour s'en passer.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 6
    Par défaut
    bon j'ai regarder , effectivement , qu'elle erreur de syntaxe , bon sinon passer des adresses de structures , je sais pas comment on fait ca moi , un exemple peut etre . merci

  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par hunter69fr2002
    bon j'ai regarder , effectivement , qu'elle erreur de syntaxe , bon sinon passer des adresses de structures , je sais pas comment on fait ca moi , un exemple peut etre . merci
    Le paramètre doit être un pointeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    struct xx
    {
       int a;
    };
     
    void f (struct xx *p)
    {
       p->a = 123;
    }
    C'est pas dans tes cours de C ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 6
    Par défaut
    ok je vais essayer de mettre en oueuvre ca. Au faite j'ai trouvé d'ou venais mon erreur de compilation , ma fonction tomorow_date , je lui precisais pas le type de structure que je voulais lui renvoyer .

    Maintenant ca compile bien , juste que je sais pas comment on fait pour que la fenetre dos de Winxp reste ouverte , j'ai pas l'habitude sous windows moi

  7. #7
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par hunter69fr2002
    juste que je sais pas comment on fait pour que la fenetre dos de Winxp reste ouverte
    Je suppose que tu as Dev-C++. Tu peux ajouter
    avant le return du main()

    c'est un peu bricolo, mais y'a pas mieux. Sinon, changer d'IDE (code::blocks, par exemple)

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 6
    Par défaut
    Y'a pas une fonction qui fonctionerrai sous tous les compilateurs .Sous visual ca marche pas ca ?

  9. #9
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par hunter69fr2002
    Y'a pas une fonction qui fonctionerrai sous tous les compilateurs .Sous visual ca marche pas ca ?
    Si, mais ça fait double emploi...

    En fait, system() est standard, et "pause" est une commande DOS/Windows.

    [ALERTE MODERATEURS]

    Y'a un problème dans la base de donnée. Le message de Médinoc a effacé le mien , je viens d'effacer le sien en repostant le mien !

Discussions similaires

  1. Debutant : Afficher la date du lendemain !
    Par tunisianoaymen dans le forum Débuter
    Réponses: 2
    Dernier message: 20/10/2007, 15h52
  2. date -> onlick
    Par sd dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/07/2006, 11h02
  3. [Date] Date du lendemain
    Par babylone7 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 28/02/2006, 16h43
  4. [debutant]date
    Par needles94000 dans le forum Langage
    Réponses: 16
    Dernier message: 19/09/2005, 17h05
  5. [Debutant] [Date] convertion date
    Par BenoitM dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 17/04/2003, 14h55

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