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 :

calculatrice horaire fonction


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 14
    Par défaut calculatrice horaire fonction
    quelqu'un peut m'aider , mon programme est bien élaboré mais
    il marche pas . c'est un menu que je propose à l'utilisateur qui doit choisir d'abord le 1 et ensuite le 2.
    aprés je lui laisse le choix entre le 3 et le 4 et il fainit par le 5.

    les fonctions individuelles fonctionnent mais en les compilant toutes ca bug

    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
    #include <stdio.h>
    #pragma warning (disable:4996)
     
     
    void Recadrer(int *h,int *min,int *sec)
    {
    	while (*sec>59)
    	{
    		*sec=*sec-60;
    		(*min)++;
        }
     
    		while (*min>59)
    		{
    		   *min=*min-60;
    		   (*h)++;
    		}
     
    		   while (*h>23)
    		   {
    			   *h=*h-24;
    		   }
    }
     
    void Somme (int h1,int min1,int sec1,int h2,int min2,int sec2)
    {
    	int *hS;
    	int *minS; 
    	int *secS;
     
    	hS   = h1 + h2;
    	minS = min1 + min2;
    	secS = sec1 + sec2;
     
        printf("La somme des deux heures est %d heures,%d minutes,%d secondes\n",hS,minS,secS);
    }
     
    void menu(int n)
    {
    	int h1,min1,sec1,h2,min2,sec2;
        switch (n)
     
    	{
    		case 1: printf("Veuillez entrez la 1ere heure, s'il vous plait\n");
    				scanf("%d %d %d",&h1,&min1,&sec1);
     
    		case 2: printf("Veuillez entrez la 1ere heure, s'il vous plait\n");
    				scanf("%d %d %d",&h2,&min2,&sec2);
     
    		case 3: printf("Vous avez choisi de faire la somme des deux temps et de la stocker dans le temps 1\n");
    				Recadrer(Somme(h1,min1,sec1,h2,min2,sec2);
     
     
    		case 4: printf("Vous avez choisi de faire la somme des deux temps et de la stocker dans le temps 2\n");
    				Recadrer(Somme(h1,min1,sec1,h2,min2,sec2));
     
     
    		default : printf("Ne me faites pas chier, vous n'avez pas entrez une operation existante\n\n");
    	}
    }
     
    	void main()
    	{
    		/* Dans cette fonction, on ne fait qu'expliquer le but du programme 
    		et on demande à l'utilisateur d'entrer les 2 temps et de choisir dans lequel il veut stocker */
     
    		int n;
    		printf("*********VOILA LE MENU********\n\n");
    		printf("CHOIX 1: SAISIE DU TEMPS 1\n");
    		printf("CHOIX 2: SAISIE DU TEMPS 2\n");
    		printf("CHOIX 3: SOMME DES DEUX TEMPS,AFFICHAGE ET SAUVEGARDE DANS TEMPS 1\n");
    		printf("CHOIX 4: SOMME DES DEUX TEMPS,AFFICHAGE ET SAUVEGARDE DANS TEMPS 2\n");
    		printf("CHOIX 5: QUITTER\n\n");
     
    		do
    		{
    			printf("Veuillez préciser le numéro de votre premier choix\n");
    			scanf("%d",&n);
    		}while (n!=1);
     
    		if (n==1)
    		{
     
    				do
    			{
    				printf("Veuillez préciser le numéro de votre second choix\n");
    				scanf("%d",&n);
    			}while (n!=2);
    	}
    merci!!

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Recadrer(Somme(h1,min1,sec1,h2,min2,sec2);
    Recadrer, dans cette expression n'a qu'un seul paramètre : la valeur de retour de Somme.
    Or
    - Somme ne renvoie pas de valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void Somme (int h1,int min1,int sec1,int h2,int min2,int sec2)
    - Et Recadrer demande 3 paramètres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void Recadrer(int *h,int *min,int *sec)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 14
    Par défaut
    oui merci , mais ca je l'avais déjà compris .

    mais alors que dois je modifier dans ma fonction pour que ca fonctionne

    Ce qui est sur , je ne peux pas changer ma fonction Recadrer.

    j'ai essyer de remplacer par ceci mais y a tjrs des bugs :

    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
    #include <stdio.h>
    #pragma warning (disable:4996)
     
     
    void Recadrer(int *h,int *min,int *sec)
    {
    	while (*sec>59)
    	{
    		*sec=*sec-60;
    		(*min)++;
        }
     
    		while (*min>59)
    		{
    		   *min=*min-60;
    		   (*h)++;
    		}
     
    		   while (*h>23)
    		   {
    			   *h=*h-24;
    		   }
    }
     
    void Somme(int hS,int minS,int secS,int *h1,int *min1,int *sec1,int *h2,int *min2,int *sec2)
    {
     
    	*h1 = *h1 + *h2;
    	*min1 = *min1 + *min2;
    	*sec1 = *sec1 + *sec2;
     
    	hS = *h1;
    	minS = *min1;
    	secS = *sec1;
    }
     
     
     
    void menu(int n)
    {
    	int hS,minS,secS,h1,min1,sec1,h2,min2,sec2;
        switch (n)
     
    	{
    		case 1: printf("Veuillez entrez la 1ere heure, s'il vous plait\n");
    				scanf("%d %d %d",&h1,&min1,&sec1);
     
    		case 2: printf("Veuillez entrez la 1ere heure, s'il vous plait\n");
    				scanf("%d %d %d",&h2,&min2,&sec2);
     
    		case 3: printf("Vous avez choisi de faire la somme des deux temps et de la stocker dans le temps 1\n");
    				Recadrer(Somme(hS,minS,secS,&h1,&min1,&sec1,&h2,&min2,&sec2));
     
     
     
    		case 4: printf("Vous avez choisi de faire la somme des deux temps et de la stocker dans le temps 2\n");
    				Recadrer(Somme(hS,minS,secS,&h1,&min1,&sec1,&h2,&min2,&sec2));
     
     
     
    		default : printf("Ne me faites pas chier, vous n'avez pas entrez une operation existante\n\n");
    	}
    }
     
    	void main()
    	{
    		/* Dans cette fonction, on ne fait qu'expliquer le but du programme 
    		et on demande à l'utilisateur les nombres et l'opération qu'il veut éxécuter*/
     
    		int n;
    		printf("*********VOILA LE MENU********\n\n");
    		printf("CHOIX 1: SAISIE DU TEMPS 1\n");
    		printf("CHOIX 2: SAISIE DU TEMPS 2\n");
    		printf("CHOIX 3: SOMME DES DEUX TEMPS,AFFICHAGE ET SAUVEGARDE DANS TEMPS 1\n");
    		printf("CHOIX 4: SOMME DES DEUX TEMPS,AFFICHAGE ET SAUVEGARDE DANS TEMPS 2\n");
    		printf("CHOIX 5: QUITTER\n\n");
     
    		printf("Veuillez préciser le numéro de votre choix\n");
    		scanf("%d",&n);
    	}

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Par défaut
    Ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    case 3: printf("Vous avez choisi de faire la somme des deux temps et de la stocker dans le temps 1\n");
    Recadrer(Somme(hS,minS,secS,&h1,&min1,&sec1,&h2,&min2,&sec2));
    devient ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    case 3: printf("Vous avez choisi de faire la somme des deux temps et de la stocker dans le temps 1\n");
     
    Somme(&hS,&minS,&secS,&h1,&min1,&sec1,&h2,&min2,&sec2);
    Recadrer (&hS,&minS,&secS);
    le prototype de ta fonction somme devient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void Somme(int *hS,int *minS,int *secS,int *h1,int *min1,int *sec1,int *h2,int *min2,int *sec2)
    Il faut que tu revois la partie du cours qui correspond aux passage de paramètre par adresse et par valeur, ainsi que l'appel d'une fonction qui renvoie une valeur et d'une fonction qui ne renvoie rien.


    Si tu as déjà fait les pointeurs sur structure, tu devrais creer une structure temps de ce type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    struct temps
    {
       int secondes;
       int minutes;
       int heures;
    };

    qui te permettrait grandement de simplifier les paramètre à passer à ta fonction.

Discussions similaires

  1. Fuseau horaire dans la fonction mail()
    Par A_Darbon dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 19/09/2008, 10h25
  2. Réponses: 11
    Dernier message: 05/02/2008, 13h10
  3. Réponses: 3
    Dernier message: 29/01/2008, 12h04
  4. Calculatrice (avec fonctions)
    Par Fur1ous dans le forum C
    Réponses: 4
    Dernier message: 07/11/2007, 10h21
  5. [VBA E] fonction format Horaire
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 15/06/2006, 21h18

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