Aide pour dvpmt C

Stuntfire62 Messages postés 2 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 13 octobre 2008 - 13 oct. 2008 à 11:09
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 13 oct. 2008 à 20:38
Bonjour,

j' ai un pb pour un code en C, j'ai plusieurs choses a faire.
je dois écrire une fonction permettant de comparer deux dates dans un tableau qui tri ces dates par ordre croissant.
j'ai déja tapé du code par rapport à ce que je devais faire avant mais la je suis coincé.
le code où je suis bloqué est mis en bleu.
si qqun peut m'apporter une solution.
MERCI!!
voici le code:

#include <stdio.h>
#include <stdlib.h>
#include
using namespace std;

struct date
{
   int Jour;
   int Mois;
   int Annee;
};

date saisir_date()
{
   date d1;
   cout << "Saisir le Jour: "; 
   cin >> d1.Jour;
   cout << "\nSaisir le Mois: ";
   cin >> d1.Mois;
   cout << "\nSaisir l'annee: ";
   cin >> d1.Annee;
   return d1;
}

void saisir_date2(date &d1)
{
  cout << "Saisir le Jour: "; 
  cin >> d1.Jour;
  cout << "\nSaisir le Mois: ";
  cin >> d1.Mois;
  cout << "\nSaisir l'annee: ";
  cin >> d1.Annee;
}

void tri_inser ()
{

      ??

}

void affiche_date (date d1)
{
   cout << d1.Jour<<'\t'<< d1.Mois << '\t' << d1.Annee <<endl;
}

int comp_date (date d1, date d2)
{
   if (d1.Annee<d2.Annee) { return -1;}
   else if (d1.Annee>d2.Annee) { return 1;}
   else if (d1.Mois<d2.Mois) { return -1;}
   else if (d1.Mois>d2.Mois) { return 1;}
   else if (d1.Jour<d2.Jour) { return -1;}
   else if (d1.Jour>d2.Jour) { return 1;}
   else return 0;
}

main()
{
    int cmp;
   date d1,d2;
   d1=saisir_date ();
   d2=saisir_date ();
   affiche_date (d1);
   affiche_date (d2);
   cmp = comp_date (d1,d2);
   system ("pause");
}

3 réponses

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
13 oct. 2008 à 13:41
0
Stuntfire62 Messages postés 2 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 13 octobre 2008
13 oct. 2008 à 19:39
je sais komen faire un tri par insertion sé pa sa le pb sé komen fair ac des dates??
Merci.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 oct. 2008 à 20:38
typedef struct _BNDATEPACK {
  WORD jour;
  WORD mois;
  WORD annee;
} BNDATEPACK;


Range tes dates en format pack (struct au dessus), tu pourras les comparer en 1 cycle comme des DWORDs.


BNDATEPACK A, B;
if(*((DWORD*) &A) > *((DWORD*) &B)) ...
Tu pourras aussi y mettre une écriture plus simple (qui ne changera rien au binaire résultant) en introduisant une 'union' dans la struct.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous