Votre question

Programme C prob de tri

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
25 Janvier 2009 19:05:55

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 :

  1. #include<stdio.h>
  2. #include<windows.h>
  3. #define max 50
  4.  
  5. void encodage(int *,int);
  6. void affichage(int*,int);
  7. void tri (int*,int);
  8.  
  9.  
  10. void main()
  11. {
  12. int Date[max][3],ndate;
  13.  
  14. do
  15. {
  16. printf("Saisir le nombre de dates a saisir:");
  17. fflush(stdin);
  18. scanf("%d",&ndate);
  19.  
  20. }while(ndate<=0 || ndate>max);
  21.  
  22. //Fonction encodage
  23.  
  24. encodage(&Date[0][0],ndate);
  25.  
  26. affichage(&Date[0][0],ndate);
  27.  
  28. tri(&Date[0][0],ndate);
  29.  
  30. affichage(&Date[0][0],ndate);
  31.  
  32.  
  33. }
  34.  
  35.  
  36. void encodage (int *Date,int ndate)
  37. {
  38. int mois,jours,annee,i;
  39.  
  40. do{
  41.  
  42. i=0;
  43. do
  44. {
  45. printf("Encoder le jour de la %d date:",i+1);
  46. fflush(stdin);
  47. scanf("%d",&jours);
  48. *Date=jours;
  49.  
  50. printf("Encoder le mois de la %d date:",i+1);
  51. fflush(stdin);
  52. scanf("%d",&mois);
  53. *(Date+1)=mois;
  54.  
  55. printf("Encoder le annee de la %d date:",i+1);
  56. fflush(stdin);
  57. scanf("%d",&annee);
  58. *(Date+2)=annee;
  59. i++;
  60. Date=Date+3;
  61. system("cls");
  62.  
  63. } while(i<ndate);
  64.  
  65.  
  66.  
  67. }while(ndate<=0 || ndate>max);
  68.  
  69.  
  70. }
  71.  
  72.  
  73. void affichage (int *Date,int ndate)
  74. {
  75. int i=0;
  76.  
  77. printf("Les Dates sont donc:\n");
  78. printf("_____________________\n\n");
  79.  
  80.  
  81. do
  82. {
  83. printf("%d / %d / %d \n",*Date,*(Date+1),*(Date+2));
  84. Date=Date+3;
  85. i++;
  86.  
  87. }while(i<ndate) ;
  88.  
  89. printf("\n");
  90.  
  91.  
  92. }
  93.  
  94.  
  95. void tri(int *Date,int ndate)
  96. {
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103. }

Autres pages sur : programme prob tri

a b L Programmation
25 Janvier 2009 21:21:22

Tu fais des dessins de l'algo, avec des petites flèches pour les pointeurs, et au boulot. :) 
25 Janvier 2009 21:23:16

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

j'ai essayer ça
Contenus similaires
25 Janvier 2009 21:24:39

déso pr le double post :

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


mais ça foire d'office tu pourrai pas m'aider?siiouplé
a b L Programmation
25 Janvier 2009 21:28:58

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 :) 
25 Janvier 2009 21:54:10

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 
26 Janvier 2009 17:32:19

personne vraiment?
a c 232 L Programmation
27 Janvier 2009 01:56:20

Pour te taper le code, non.
Pour t'aider, oui.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS