Les structures en C

Résolu/Fermé
Cynthia75 - Modifié par NHenry le 9/11/2015 à 23:18
 Cynthia75 - 10 nov. 2015 à 11:06
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 mercredi 20 juin 2012 Statut Membre Dernière intervention 5 décembre 2015 27
9 nov. 2015 à 23:35
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
Merci beaucoup ça marche :)
0
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 mercredi 20 juin 2012 Statut Membre Dernière intervention 5 décembre 2015 27
Modifié par nidhogg-59 le 10/11/2015 à 00:06
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
Merci beaucoup nidhogg-59 :)
0