Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1740 connectés 

  FORUM HardWare.fr
  Programmation
  C

  fonction simple return

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

fonction simple return

n°1807017
GoldenBall
Posté le 31-10-2008 à 17:15:28  profilanswer
 

Bonjour
 
 Je suis novice et je voudrais créer une fonction qui renvoie l'heure sous forme hh H mm quand on lui donne le nombre de minutes
En gros  
heure=132;
affiche_heure(heure)  --> renvoi 2h12
 
j'ai donc fait  
 

Code :
  1. int affiche_heure(int heure)
  2. {
  3.   int i=0;
  4.   while(heure>60)
  5.    {
  6.      i=i+1;
  7.      heure=heure-60;
  8.    }
  9. }


 
en fait je voudrais qu'elle renvoit i (contenant le nombre d'heure) et heure (le nombre de minutes)
 
comment fait-il faire ? je sais que return est utilisé mais ne permet de renvoyé qu'une seule variable ...
 
merci

mood
Publicité
Posté le 31-10-2008 à 17:15:28  profilanswer
 

n°1807049
matafan
Posté le 31-10-2008 à 18:39:38  profilanswer
 

Il y a plusieurs solutions. En voilà deux :
 
1) Renvoyer une structure
 
2) Ne rien renvoyer, mais deux arguments supplémentaires qui seront des pointeurs vers une zone où ta fonction peut stocker le résultat. Par exemple :
 

Code :
  1. void affiche_heure(int heure, int *hout, int *mout) {
  2.         ...
  3.         *hout = i;
  4.         *mout = heure;
  5. }
  6. int main() {
  7.         int heures, int minutes;
  8.         affiche_heure(1234, &heures, &minutes);
  9.         ...
  10. }


A part ça, ton algo est assez naïf. Plutôt qu'une boucle, tu peux faire une division : heures = heure/60 et minutes = heure - 60*heures (ou aussi minutes = heure % 60, comme tu préfère). Ah et tes nom sont très mal choisis aussi : affiche_heure n'affiche rien, heure contient des minutes...

n°1807052
GoldenBall
Posté le 31-10-2008 à 18:42:49  profilanswer
 

oui bonne idée pour la division plus rapide qu'une boucle .. par contre les pointeurs on n'a pas vu donc on ne peut malheureusement l'utiliser
 
et pour la structure ?
tu veux dire renvoyer une chaine de caractère contenant hh H mm ?


Message édité par GoldenBall le 31-10-2008 à 18:43:02
n°1807090
matafan
Posté le 31-10-2008 à 20:26:35  profilanswer
 

Non, par renvoyer une structure je veux dire renvoyer une structure ;)

Code :
  1. typedef struct {
  2.     int heures;
  3.     int minutes;
  4. } hm_t;
  5. hm_t
  6. affiche_heure(int heure)
  7. {
  8.     hm_t resultat;
  9.     resultat.heures = ...;
  10.     resultat.minutes = ...;
  11.     return resultat;
  12. }
  13. int
  14. main()
  15. {
  16.     hm_t hm;
  17.     ...
  18.     hm = affiche_heure(...);
  19.     printf("%d:%d\n", hm.heures, hm.minutes);
  20.     ...
  21. }


(je vais me faire engueuler parce que j'ai utilisé _t dans mon type)


Message édité par matafan le 31-10-2008 à 20:28:27

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  fonction simple return

 

Sujets relatifs
Addition simple et ensuite avec retenue[NSIS] CheckBox le + simple, ajout de checkbox au dernier ecran
[SQL] Aide à la réalisation d'une simple requête updatefaire une fonction qui retourne une chaine de caractere
Equivalent de la fonction TEXTE d Excel ?Sommes multi-conditionnelle
[Access] fonction arrondi supFonction in_array en php
[Access] - l'expression ne fait pas partie de la fonction d'agregatgsoap2 utilisable avec un simple fichier XML
Plus de sujets relatifs à : fonction simple return


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR