Les structures en C

Résolu
Cynthia75 -  
 Cynthia75 -
Bonsoir à tous,

voila je débute en programmation et j'en suis à la partie des structures en C. Je pense avoir compris, le problème c'est que là j'essaye de faire un petit programme qui convertir une heure en seconde en utilisant la notion de structure mais mon programme ne compile pas. Je ne comprend vraiment pourquoi. Pouvez m'expliquez (avec des mots simples ^^) mon erreur :)

Merci :)

#include <stdio.h>
#include <stdlib.h>

typedef struct
{
  int heures;
  int minutes;
  int secondes;
} Heure;

int heure_en_secondes(Heure h)
{
  return (h.heures * 3600);
}

int main()
{
  int a;

  a = 0;
  printf("Veuillez entrez une heure \n");
  scanf ("%d", &a);
  printf("Cela fait %d secondes\n",heure_en_secondes(a));
  return (0);
}






EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

1 réponse

nidhogg-59 Messages postés 102 Date d'inscription   Statut Membre Dernière intervention   28
 
Bonjour,
d'après ce que tu as écris, ta fonction heure_en_secondes prend en paramètre une variable de type Heure.
Or, ici ligne 23 tu lui donne un int.
Dans ton main, il faut que tu créé une variable de type Heure et que tu l'envoies à la fonction heure_en_secondes, à la place d'un int.

Cordialement.
0
Cynthia75
 
Merci beaucoup ça marche :)
0
Cynthia75
 
D'ailleurs je voulais savoir pourquoi à la compilation j'obtiens un avertissement pour le scanf et comment y remedier ?? :)
0
nidhogg-59 Messages postés 102 Date d'inscription   Statut Membre Dernière intervention   28
 
C'est parce que tu donnes un type Heure* à scanf alors qu'il attend un int*.
Comme ça, il ne devrait plus y avoir de problème.
int main()
{
  Heure a;

  a.heures = 0;
  printf("Veuillez entrez une heure \n");
  scanf ("%d", &a.heures);
  printf("Cela fait %d secondes\n",heure_en_secondes(a));
  return (0);
}
0
Cynthia75
 
Merci beaucoup nidhogg-59 :)
0