Aide pour dvpmt C

Signaler
Messages postés
2
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
13 octobre 2008
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
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

Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
24
Messages postés
2
Date d'inscription
lundi 13 octobre 2008
Statut
Membre
Dernière intervention
13 octobre 2008

je sais komen faire un tri par insertion sé pa sa le pb sé komen fair ac des dates??
Merci.
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
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++