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 inconnu dans mon code


Sujet :

C

  1. #1
    Membre du Club Avatar de mouchT8
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 141
    Points : 49
    Points
    49
    Par défaut Problème inconnu dans mon code
    Voila le code qui me donne des cheveux gris en ce moment...

    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
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    #include<stdio.h>
     
     
    typedef struct{
       int heure;
       int minute;
       int seconde;
    }TEMPS;
     
     
    TEMPS entree(TEMPS t) {
     
    puts("Entrez les heures");
    scanf_s("%d",&(t.heure));
    if(t.heure>23){
    	printf("Vous avez entre\n");
    	printf("%d",t.heure);
    	printf("\n");
    	while (t.heure>23){
    	puts("Les heures doivent etre comprises entre 0 et 23. Recommencez.\n");
    	scanf_s("%d",&(t.heure));}
    }
     
    puts("Entrez les minutes");
    scanf_s("%d",&(t.minute));
    if(t.minute>59){
    printf("Vous avez entre\n");
    printf("%d",t.minute);
    printf("\n");
    	while (t.minute>59){
    	puts("Les minutes doivent etre comprises entre 0 et 59. Recommencez.\n");
    	scanf_s("%d",&(t.minute));}
    }
     
    puts("Entrez les secondes");
    scanf_s("%d",&(t.seconde));
    if(t.seconde>59){
    printf("Vous avez entre\n");
    printf("%d",t.seconde);
    printf("\n");
    	while (t.seconde>59){
    	puts("Les secondes doivent etre comprises entre 0 et 59. Recommencez.\n");
    	scanf_s("%d",&(t.seconde));}
    }
     
     
    return t;
    }
     
    //b- Ecriture du sous programme sortie()
     
    int sortie(TEMPS t) 
    {
     
    printf("L'heure saisie est:\n");
    printf("%d H %d min %d sec \n", t.heure,t.minute,t.seconde);
    return 0;
    }
     
     
    //écriture du sous-programme post(t1,t2)
     
    int post(TEMPS t1, TEMPS t2){
     
    if (t1.heure < t2.heure) {
    return -1;
    }
    		if (t1.heure > t2.heure) {
    		return 1;
    		}
     
     
    		if (t1.heure == t2.heure ) {
     
     
    if (t1.minute < t2.minute ) {
    return -1;
    }
     
     
    		if (t1.minute > t2.minute ) {
    		return 1;
    		}
     
    		if (t1.minute == t2.minute ) {
     
     
    if (t1.seconde < t2.seconde) {
    return -1;
    }
    		if (t1.seconde> t2.seconde) {
    		return 1;
    		}
    					if (t1.seconde== t2.seconde) {
    					return 0;
    					}
    			}
    			}
    		return 0;
    }
     
     
    void main () {
     
    TEMPS t1,t2,t;
     
    //Premier appel de entree pour t1
    printf("Entrez du premier temps (t1): \n");
    t1=entree(t);          // LE PROBLEME EST ICI !!!
     
     
    //Deuxieme appel de entree pour t2
    printf("Entrez du deuxieme temps (t2): \n");
    t2=entree(t); 
     
     
    //Appel a la fonction post(t1,t2)
    printf("Calcul de l'antériorité des temps...\n");
    post(t1,t2);
     
     
    //affichage de l'antériorité des temps
    if(post(t1,t2)==1) {
    printf ("t1 est posterieur a t2 \n");
    }
     
     
    if(post(t1,t2)==-1) {
    printf ("t1 est anterieur a t2 \n");
    TEMPS t0;
     
    t0.heure=t1.heure;
    t1.heure=t2.heure;
    t2.heure=t0.heure;				//ici 
     
    t0.minute=t1.minute;
    t1.minute=t2.minute;			//échange des valeurs
    t2.minute=t0.minute;
     
    t0.seconde=t1.seconde;
    t1.seconde=t2.seconde;			//de t1 et t2
    t2.seconde=t0.seconde;
     
     
    }
     
     
    if(post(t1,t2)== 0) {
    printf ("t1 et t2 sont egaux \n");
    }
     
    }

    Quand je le compile il me note:

    warning C4700: variable locale 't' non initialisée utilisée!!
    au niveau de la ligne que jai indiquée dans mon code...
    je ne comprend pas.. il n'y que ca qui bug, peut etre que je ne vois pas le probleme alors qu'il est évident..comme d'habitude, ou c'est la fatigue?..

    Quelqu'un peu m'aider?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    salut,
    1) ce n'est pas

    mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int main(void)
    {
     blabla
     return EXIT_SUCCESS;
    }
    2) plutôt que de passer une structure en arguemnt, préfère passer un pointeur sur cette structure. C'est mieux.

    3) ton problème est identique au code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int main(void)
    {
      int x;
      int y=f(x);
    }
    où f et une fonction. Que vaut x ??

    Pour chaque structure, je te conseille de faire la chose suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    MaStructure * CreateMaStructure(blabla)
    {
      MaStructure * mastruct = malloc(sizeof(*mastruct));
      /* test des erreurs et suite du code */
      return mastruct;
     
    void DestroyMaStructure(Mastructure ** mastruct)
    {
      free(de tous les pointeurs)
      *mastruct=NULL;
    }
    Ainsi, tout est alloué, initialisé et libéré propremement (selon moi en tout cas)

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 225
    Points : 113
    Points
    113
    Par défaut
    Assigner une valeur à une structure ? Grosse bêtise, d'ailleurs, comment t'as pu compiler le tout sans que GCC te sorte cela ? o_O

    Utilise des pointeurs de structures que tu envoies à tes fonctions, pour que ces dernières puissent les manipuler selon tes besoins .

  4. #4
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    En les warnings sont pas des erreurs. Mais le compilateur te signale que tu n' pas encore initialisé des variables ce qui peut avoir des consequences lors de l' execution (resultat erroné par exemple).
    Regarde un peu ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int main()
    {
    int i;
    for (int j=0;j<10;j++) i++;
    printf("la somme des nombres inferieurs à 10 est : %d", i);
    ...
    Ce code ne fait pas son travail, c' est ça que le compilateur veut eviter.

    Pour ton cas, tu peux eviter les warning en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TEMPS t1={0,0,0} ,t2={0,0,0} ,t={0,0,0};

  5. #5
    Membre du Club Avatar de mouchT8
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 141
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par darrylsite Voir le message
    En les warnings sont pas des erreurs. Mais le compilateur te signale que tu n' pas encore initialisé des variables ce qui peut avoir des consequences lors de l' execution (resultat erroné par exemple).
    Je suis obligé de résoudre ce probleme parce que quand j'execute mon programme ca ne marche pas
    et puis c'est mieu de trouvé ou ce trouve le probleme pour éviter de le refaire

  6. #6
    Membre du Club Avatar de mouchT8
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 141
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par darrylsite Voir le message
    Pour ton cas, tu peux eviter les warning en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TEMPS t1={0,0,0} ,t2={0,0,0} ,t={0,0,0};
    MERCI !!!!!!!
    ca marche c'est génial
    Merci à tous !

    Mon code n'est pas encore terminé, j'ai des rajouts à faire, alors à bientot peut etre pour un nouveau probleme!!

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

Discussions similaires

  1. Problème try-catch dans mon code
    Par little pepito dans le forum Langage
    Réponses: 7
    Dernier message: 11/06/2007, 12h22
  2. Réponses: 2
    Dernier message: 03/05/2007, 09h00
  3. Réponses: 13
    Dernier message: 17/10/2006, 15h35
  4. [Upload] Problème pour uploader un fichier dans mon code
    Par Peuplarchiste dans le forum Langage
    Réponses: 2
    Dernier message: 27/05/2006, 09h48
  5. Problème de paramètres dans mon code javascript
    Par cocacollection dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/03/2006, 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