debutant...

debutant... - C - Programmation

Marsh Posté le 11-04-2007 à 21:56:48    

Voila j'ai fait un petit programme qui convertit un nombre de minute en heure et minute mais j'ai une erreur lors de la compilation que j'arrive pas a résoudre:
#include <stdio.h>
#include "inf101.h"
 
int heure(int n)
{
  int b =0;
  int i;
  {
  if(n<60)
    return n;
  else
  for(i=60;i<n;i++)
    b =b +1;
  if(b==60)
    b=0;
  }
return b;
}
 
int main(void)
{
  printf("saisir un nombre correspondant au minute:" );
  int n = lire_entier();
  printf("%d correspond à %d heure et %d minute.\n",n, n%60, heure(n));
 
il m'indique comme erreur pour la dernier ligne :expected declaration or statement at end input.

Reply

Marsh Posté le 11-04-2007 à 21:56:48   

Reply

Marsh Posté le 11-04-2007 à 22:00:38    

je suis vriament noob, j'ai oublier l'accolade a la fin

Reply

Marsh Posté le 11-04-2007 à 22:08:47    

par contre quand par exemple je fait fonctionné ma fonction avec 90 min il m'affiche "correspond a 90h et 90min", je comprend pas

Reply

Marsh Posté le 12-04-2007 à 03:16:06    

Pourquoi faire simple quand on peut faire compliqué...
Tu prends tes minutes, et tu leur retranches 60 tant que minutes >= 60. À chaque retranchement, tu incrémentes ta variable heures. T'as plus qu'à afficher le résultat.


---------------
You get so used to things the way they are. And I've always been alone. I guess that makes me lonely.
Reply

Marsh Posté le 12-04-2007 à 11:05:57    

Pourquoi ne pas avoir eu recours à la division entière ?

 
Code :
  1. int heure(int n) {
  2.    return n / 60;
  3. }



Message édité par Chaos Intestinal le 12-04-2007 à 11:06:40
Reply

Marsh Posté le 12-04-2007 à 17:42:54    

-Opera- a écrit :

Pourquoi faire simple quand on peut faire compliqué...
Tu prends tes minutes, et tu leur retranches 60 tant que minutes >= 60. À chaque retranchement, tu incrémentes ta variable heures. T'as plus qu'à afficher le résultat.


encore plus simple c'est d'utiliser l'opérateur modulo, puis retrancher le reste et faire la division


Message édité par neg'gwada le 12-04-2007 à 17:44:21

---------------
--- WinSplit Revolution ---
Reply

Marsh Posté le 12-04-2007 à 17:48:02    

En pratique, vu comment la division entière fonctionne, faire le modulo et retrancher le reste n'est pas nécessaire.

Reply

Marsh Posté le 12-04-2007 à 20:11:28    

Chaos Intestinal a écrit :

En pratique, vu comment la division entière fonctionne, faire le modulo et retrancher le reste n'est pas nécessaire.


convertir en heure ET minutes, avec une simple division tu auras du mal...


---------------
--- WinSplit Revolution ---
Reply

Marsh Posté le 12-04-2007 à 20:30:44    

Oui mais le modulo est déjà dans le printf et pas nécessaire dans la fonction heure().
Enfin je crois que tout le monde est d'accord.

Reply

Marsh Posté le 12-04-2007 à 20:44:12    

div_t div(int numerator, int denominator);


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 12-04-2007 à 20:44:12   

Reply

Marsh Posté le 12-04-2007 à 21:01:20    

Vous avez raison je suis trop con, on peut faire ça avec une simple macro d'une ligne...
Ça m'apprendra à faire le malin en postant à 3 heures du mat' au lieu de pioncer comme tout le monde. [:itm]


---------------
You get so used to things the way they are. And I've always been alone. I guess that makes me lonely.
Reply

Marsh Posté le 12-04-2007 à 23:43:31    

Pytre a écrit :

Oui mais le modulo est déjà dans le printf et pas nécessaire dans la fonction heure().
Enfin je crois que tout le monde est d'accord.


oui en effet j'avais mal lu  :jap:


---------------
--- WinSplit Revolution ---
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed