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

  1. #1
    Candidat au 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
    Points : 4
    Points
    4
    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 actif 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
    Points : 253
    Points
    253
    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..
    Si je pleure encore qu'un jour tu me reviennes,
    C'est que sans toi je suis comme un Roi sans sa Reine.

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    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.
    Pas de Wi-Fi à la maison : CPL

  4. #4
    Candidat au 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
    Points : 4
    Points
    4
    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 sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    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 ?
    Pas de Wi-Fi à la maison : CPL

  6. #6
    Candidat au 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
    Points : 4
    Points
    4
    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 sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    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)
    Pas de Wi-Fi à la maison : CPL

  8. #8
    Candidat au 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
    Points : 4
    Points
    4
    Par défaut
    Y'a pas une fonction qui fonctionerrai sous tous les compilateurs .Sous visual ca marche pas ca ?

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    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 !
    Pas de Wi-Fi à la maison : CPL

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