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 :

Structures et signe du zodiaque


Sujet :

C

  1. #1
    Membre éclairé Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Par défaut Structures et signe du zodiaque
    Bonjour, j'ai réalisé un programme qui permet de trouver le signe du zodiaque en tapant le jour en chiffre et le mois en lettres. Le programme marche seulement j'ai 2 Warnings :
    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
     
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #define N 15
    #define LG 12
     
    struct signe {            /*Initialisation des paramètres de date*/
           int jour;
           char mois[N];
           char signe[N];
           };
     
    struct signe zodiaque [LG]={      
            21, "decembre", "sagittaire",
            20, "janvier", "capricorne",
            19, "fevrier", "verseau",
            20, "mars", "poisson",
            20, "avril", "belier",
            21, "mai", "taureau",
            21, "juin", "gemeau",
            22, "juillet", "cancer",
            22, "aout", "lion",
            22, "septembre", "vierge",
            22, "octobre", "balance",
            22, "novembre", "scorpion"
            };
     
    int main (void)
    {
        int jour_n,i,id=0;
        char mois_n[N];
     
        do
        {
          puts ("Tapez votre date de naissance, jour en chiffres et mois en lettres :");
          scanf ("%d",&jour_n); 
          scanf ("%s",mois_n);  
     
          for (i=0; i<LG; i++) 
          {
              if ((!stricmp(mois_n,zodiaque[i].mois)))  
              {
                 if (!stricmp(mois_n,zodiaque[11].mois) && (jour_n>22) && (jour_n<32)) 
                 {
                      printf ("Vous etes nee le %d %s, votre signe du zodiaque est : %s",jour_n
                                                                                        ,mois_n
                                                                                        ,zodiaque[0].signe); 
                      id=1;                                                                  
                      break;
                 }
                 else if (jour_n<=zodiaque[i].jour)  
                 {                             
                     printf ("Vous etes nee le %d %s, votre signe du zodiaque est : %s",jour_n
                                                                                     ,mois_n
                                                                                     ,zodiaque[i].signe);
                     id=1;  
                     break;
                 }
                 else if (jour_n<32) 
                 {
                     printf ("Vous etes nee le %d %s, votre signe du zodiaque est : %s",jour_n
                                                                                      ,mois_n
                                                                                      ,zodiaque[i+1].signe);
                     id=1;                                                                 
                     break;
                 }
     
              }
          }
     
        if (id==0) puts ("Cette date n'existe pas");
        }while ((jour_n>32) || (stricmp(mois_n,zodiaque[i].mois)));
     
        puts ("\n");
        system ("pause");
        return (0);
    }
    Voici donc les 2 warnings :
    [Warning] missing braces around initializer
    [Warning] (near initialization for `zodiaque[0]')
    Je programme sous DEV C/C++.
    Voilà merci d'avance pour votre aide.

  2. #2
    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: Structures et signe du zodiaque
    Citation Envoyé par benjiprog
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    struct signe zodiaque [LG]={      
            21, "decembre", "sagittaire",
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            {21, "decembre", "sagittaire"},

  3. #3
    Membre éclairé Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Par défaut
    Je te remerci. Je voulais utiliser fgets pour la saisie de chaines de caractères, seulement cela me pose un problème lors de la comparaison, il ne trouve jamais 2 mêmes chaines identiques car apparement la saisie avec fgets impose un retour a la ligne a la fin de la chaines et donc stricmp doit le prendre en compte je ne suis pa sur de ce que je dit, mais si c'est le cas auriez-vous une solution?

  4. #4
    Membre émérite
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Par défaut
    Citation Envoyé par benjiprog
    Je te remerci. Je voulais utiliser fgets pour la saisie de chaines de caractères, seulement cela me pose un problème lors de la comparaison, il ne trouve jamais 2 mêmes chaines identiques car apparement la saisie avec fgets impose un retour a la ligne a la fin de la chaines et donc stricmp doit le prendre en compte je ne suis pa sur de ce que je dit, mais si c'est le cas auriez-vous une solution?

    http://c.developpez.com/faq/c/?page=...hr_after_fgets
    Software becomes slower faster than hardware becomes faster
    [size=1]
    http://xrenault.developpez.com

Discussions similaires

  1. signe du zodiaque
    Par mario94 dans le forum Langage
    Réponses: 7
    Dernier message: 28/04/2012, 19h02
  2. [JNA] Soucis Signed char mavariable :1 dans des structures
    Par John.BE dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 05/03/2012, 15h53
  3. Dessiner les signes du zodiaque en Pascal
    Par kinggainer dans le forum Pascal
    Réponses: 2
    Dernier message: 11/05/2007, 18h58
  4. [Dates] Signes du zodiaque
    Par Oberown dans le forum Langage
    Réponses: 3
    Dernier message: 27/09/2005, 10h49
  5. longueur d'une structure
    Par bohemianvirtual dans le forum C
    Réponses: 6
    Dernier message: 28/05/2002, 18h31

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