Tom's Guide > Forum > Programmation > Programme C prob de tri

Programme C prob de tri

Forum Programmation : Programme C prob de tri

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour,
Ce programme consiste a entrer des dates dans un tableau de [max][3] (jours,mois,année)par l'utilisateur puis les afficher jusque la ok ça marche puis on me demande de réalise un tri par insertion simple et afficher et la je bloque vraiment! :-( tous ça en utilisant les fonctions par pointeur es ce que quelqu'un pourrais me donner une solution simple ? ce serrais vrmt génial !

Voilà le code :

Code :
  1. #include<stdio.h>
  2. #include<windows.h>
  3. #define max 50
  4. void encodage(int *,int);
  5. void affichage(int*,int);
  6. void tri (int*,int);
  7. void main()
  8. {
  9.     int Date[max][3],ndate;
  10.     do
  11.     {
  12.         printf("Saisir le nombre de dates a saisir:" );
  13.         fflush(stdin);
  14.         scanf("%d",&ndate);
  15.     }while(ndate<=0 || ndate>max);
  16.     //Fonction encodage
  17.     encodage(&Date[0][0],ndate);
  18.     affichage(&Date[0][0],ndate);
  19.     tri(&Date[0][0],ndate);
  20.     affichage(&Date[0][0],ndate);
  21. }
  22. void encodage (int *Date,int ndate)
  23. {
  24.     int mois,jours,annee,i;
  25.     do{
  26.         i=0;
  27.         do
  28.         {
  29.             printf("Encoder le jour de la %d date:",i+1);
  30.             fflush(stdin);
  31.             scanf("%d",&jours);
  32.             *Date=jours;
  33.             printf("Encoder le mois de la %d date:",i+1);
  34.             fflush(stdin);
  35.             scanf("%d",&mois);
  36.             *(Date+1)=mois;
  37.             printf("Encoder le annee de la %d date:",i+1);
  38.             fflush(stdin);
  39.             scanf("%d",&annee);
  40.             *(Date+2)=annee;
  41.             i++;
  42.             Date=Date+3;
  43.             system("cls" );
  44.         } while(i<ndate);
  45.     }while(ndate<=0 || ndate>max);
  46. }
  47. void affichage (int *Date,int ndate)
  48. {
  49.     int i=0;
  50.     printf("Les Dates sont donc:\n" );
  51.     printf("_____________________\n\n" );
  52.     do
  53.     {
  54.         printf("%d / %d / %d \n",*Date,*(Date+1),*(Date+2));
  55.         Date=Date+3;
  56.         i++;
  57.     }while(i<ndate)    ;
  58.     printf("\n" );
  59. }
  60. void tri(int *Date,int ndate)
  61. {
  62. }

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Tu fais des dessins de l'algo, avec des petites flèches pour les pointeurs, et au boulot. :)

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky

c'est ce que je fait mais on a pas tts une grande Logique algoritmique ;-)

j'ai essayer ça

Répondre à kent87042

déso pr le double post :

essayer ça :

Code :
  1. void tri(int *Date,int ndate)
  2. {
  3.     int *pa,tmp1,tmp2,tmp3,i,j;
  4.     pa=Date+3;
  5.     while(i<3)
  6.     {
  7.         while(j<ndate)
  8.         {
  9.             if(*Date>*pa)
  10.             {
  11.                 tmp1=*Date;
  12.                 tmp2=*(Date+1);
  13.                 tmp3=*(Date+2);
  14.                 *Date=*pa;
  15.                 *(Date+1)=*(pa+1);
  16.                 *(Date+2)=*(pa+2);
  17.                 tmp1=*pa;
  18.                 tmp2=*(pa+1);
  19.                 tmp3=*(pa+2);
  20.             }
  21.             pa=pa+3;
  22.             Date=Date+3;
  23.             j++;
  24.         }
  25.         i++;
  26.     }
  27.     while(i<ndate)
  28.     {
  29.     printf("\t [%d]",*Date);
  30.     }
  31.     i++;



mais ça foire d'office tu pourrai pas m'aider?siiouplé

Répondre à kent87042

Bien sûr que si puisque le cerveau fonctionne comme ça. :p

Tu prends 9 petit papier numérotés de 1 à 9, tu les mets dans le désordre en les alignant les uns après les autres. Tu prends les papiers un par un pour les mettre dans l'ordre à un autre endroit. Donc tu déplaces tous les papier pour en insérer un nouveau.
Il ne reste plus qu'à savoir comment ton cerveau arrive à trouver la solution. :)

EDIT:
while(i<3) => i n'est pas initialisé.
Au premier coup d'oeil, je comprends rien, alors mets des commentaires parce que j'ai pas envie de réfléchir :)


Message édité par CRicky le 25-01-2009 à 21:31:48
------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky

Moi non plus je comprend rien :) je vais y réfléchir .

Si qqu'un a la science infuse il peu me taper le code manquant :D

Répondre à kent87042

Pour te taper le code, non.
Pour t'aider, oui.

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR
Tom's Guide > Forum > Programmation > Programme C prob de tri
Aller à :

Il y a 1284 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens