Tri par insertion [C] - C - Programmation
Marsh Posté le 02-02-2005 à 14:14:47
J'ai pas encore lu le code, mais tu ne dis même pas quel est le problème que tu rencontres, là... 
Marsh Posté le 02-02-2005 à 14:16:37
| skeye a écrit : J'ai pas encore lu le code, mais tu ne  dis même pas quel est le problème que tu rencontres, là...  | 
 
 
Et bien, il ne trie pas correctement les listes  
 
Excuse moi, j'ai oublié de préciser que j'étais vraiment pas douée en programmation 
Marsh Posté le 02-02-2005 à 14:27:51
ca devient assez hard de ne pas utiliser le récursif avec des liste chaînées 
je propose une autre solution (que je n'ai pas testé !!!) : 
| Code : 
 | 
Marsh Posté le 02-02-2005 à 14:34:16
ReplyMarsh Posté le 02-02-2005 à 14:38:06
| couak a écrit : ca devient assez hard de ne pas utiliser le récursif avec des liste chaînées  
 | 
 
 
 
En fait j'ai oublié de préciser que le prototype des fonctions ne doit pas être changé  
 
Donc je dois faire avec une fonction: 
 
list insert_sort(bool compare(CONTENT,CONTENT) , const list l)
Marsh Posté le 02-02-2005 à 18:21:01
| pains-aux-raisins a écrit : normal tu est une nana  | 
 
 
  , elle est bien bonne celle là
 , elle est bien bonne celle là  ![[:acherpy] [:acherpy]](https://forum-images.hardware.fr/images/perso/acherpy.gif) .
 . 
Ca y est, on arrive à convaincre les nanas que la prog c cool   
  
 
PS : c'est la premiere fois que je vois une nana poster sur cette section...enfin d'après le pseudo, pis là la signature est clair  ![[:amandine75011] [:amandine75011]](https://forum-images.hardware.fr/images/perso/amandine75011.gif) 
  
Marsh Posté le 02-02-2005 à 18:28:27
| sophie74 a écrit : Bonjour, et merci d'avance pour votre aide   
 | 
 
 
Sans lire tout le code, tu es sûr que ton malloc est correct ?  
 
Marsh Posté le 02-02-2005 à 18:36:23
malloc renvoie un pointeur non? 
 
d'ailleurs comment ça se fait qu'il y ait si peu de pointeurs? ![[:gratgrat] [:gratgrat]](https://forum-images.hardware.fr/images/perso/gratgrat.gif) 
 
Marsh Posté le 02-02-2005 à 18:41:17
| Masklinn a écrit : malloc renvoie un pointeur non?  | 
 
 
...je dirais même un double pointeur dans ce cas. Je ne suis pas sûr que c'est ce qu'elle veut   et l'affectation me paraît douteuse.
 et l'affectation me paraît douteuse.
Marsh Posté le 02-02-2005 à 18:46:15
là ça renvoie effectivement un pointeur sur un pointeur de list_c qu'elle cast en list... 
 
Enfin je vais arrêter là, étant une quiche en C je vais me mettre à raconter des conneries  
 
 
Par contre le .h serait appréciable je pense
Marsh Posté le 02-02-2005 à 20:12:32
Qui vous dit que le type list n'est pas un pointeur ? Certains profs (qui n'ont probablement pas fait beaucoup de C) aiment bien cacher les pointeurs a coups de typedef.
Marsh Posté le 02-02-2005 à 20:16:42
pas forcément, les élèves peuvent comprendre plus facilement l'algorithmie, notamment le type abstrait avec les listes chaînées, avant de se pencher et de coucher avec la machine en manipulant des pointeurs 
perso c'est comme ca que j'ai le mieux compris (mais j'ai pas couché avec la machine)
Marsh Posté le 02-02-2005 à 21:18:15
clair que les typedef sur les pointeurs, c'est l'horreur. 
on ne voit plus qui est un pointeur, qui n'en est pas un, etc ... En plus, laisser le struct list_c* permet à l'éditeur de texte de colorer tout ça. 
un truc tout bete, mais qui gène beaucoup dans la lecture d'un programme : la variable l que l'on confond avec 1. 
 
Sinon, le malloc n'est pas correct. C'est contre-indiqué de caster. De plus, tu n'alloue pas la bonne taille puisque tu n'alloue que la taille d'un list_c*, et non d'un list_c. 
 
| Code : 
 | 
 
     
voila pour le début du code, j'ai pas tout lu ...
Marsh Posté le 02-02-2005 à 14:12:36
Bonjour, et merci d'avance pour votre aide 
  
 
 
Je bloque sur un TP, il s'agit de trier une liste d'entiers, en insérant successivement ses éléments dans une liste initialement vide.
Exemples:
Les étapes pour trier la liste (4 2 3 1) sont:
()
(4)
(2 4)
(2 3 4)
(1 2 3 4)
J'ai évidemment commencé, mais ça fait plusieurs jours que je n'avance pas, si quelqu'un pouvait regarder où est l'erreur, je vous en serais reconnaissante.
Merci,
Sophie