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à .
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
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?
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.
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