Posté par fearan .
Évalué à 2.
Dernière modification le 08 mars 2019 à 09:58.
J'ai quelque réserver sur l'algo utilisé, généralement on multiplie la somme par 10 et on ajoute les unités, et on itère jusqu'à la fin du tableau; ça évite de jouer avec des indices décalés…
ce qui ferait un
somme := 0
pour tous les éléments du tableau,
somme := somme*10 + unité # penser à gérer une unité n'étant pas comprise dans les bonne bornes ;)
fin pour
retourne somme
Oui je pourrai le faire en C, c++, java, caml, python perl, bash… ;)
Là le soucis c'est que tu as cumulé >= et indice -1 donc lors de la dernière itération de boucle, tu te retrouve à toper la case -1, ce qui peut poser problème ;)
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
J'ai pensé la même chose que toi. étonnament hors optimisation ce code compile plus "petit" que le code du post initial, et c'est encore le cas en -O1, mais la tendance s'inverse en -O2 ou gcc arrive à faire un meilleur boulot sur l'algo 'inefficace'.
# ne pas cumuler >= et size-truc ça fait des noeuds au cerveau :P
Posté par fearan . Évalué à 2. Dernière modification le 08 mars 2019 à 09:58.
J'ai quelque réserver sur l'algo utilisé, généralement on multiplie la somme par 10 et on ajoute les unités, et on itère jusqu'à la fin du tableau; ça évite de jouer avec des indices décalés…
ce qui ferait un
somme := 0
pour tous les éléments du tableau,
somme := somme*10 + unité # penser à gérer une unité n'étant pas comprise dans les bonne bornes ;)
fin pour
retourne somme
Oui je pourrai le faire en C, c++, java, caml, python perl, bash… ;)
Là le soucis c'est que tu as cumulé >= et indice -1 donc lors de la dernière itération de boucle, tu te retrouve à toper la case -1, ce qui peut poser problème ;)
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: ne pas cumuler >= et size-truc ça fait des noeuds au cerveau :P
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 1.
J'ai pensé la même chose que toi. étonnament hors optimisation ce code compile plus "petit" que le code du post initial, et c'est encore le cas en -O1, mais la tendance s'inverse en -O2 ou gcc arrive à faire un meilleur boulot sur l'algo 'inefficace'.
si tu veut jouer: https://godbolt.org/z/Dcm6fP
;)
[^] # Re: ne pas cumuler >= et size-truc ça fait des noeuds au cerveau :P
Posté par fearan . Évalué à 2. Dernière modification le 08 mars 2019 à 11:55.
yep je peux aussi jouer.
bon par contre ça plante pour size < 1 ;)
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: ne pas cumuler >= et size-truc ça fait des noeuds au cerveau :P
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 1.
c'est comme ça qu'on fini avec des remote code execution dans la stack réseau du kernel ;p
[^] # Re: ne pas cumuler >= et size-truc ça fait des noeuds au cerveau :P
Posté par Panhwein . Évalué à 1. Dernière modification le 08 mars 2019 à 21:55.
Et je crois qu'il n'a pas encore eu de cours sur les pointeurs, malloc()!
Sort pas un truc de ce genre à ton prof, reste sur unsigned int :)
[^] # Re: ne pas cumuler >= et size-truc ça fait des noeuds au cerveau :P
Posté par Panhwein . Évalué à 1. Dernière modification le 08 mars 2019 à 22:25.
Ah oui!
Ca fait longtemps que je n'ai pas fais de C, ca me fait plaisir!
int size = sizeof(table) / sizeof(table[0]);
ou int au lieu de table[0]
Ca passe?
[^] # Re: ne pas cumuler >= et size-truc ça fait des noeuds au cerveau :P
Posté par Panhwein . Évalué à 1. Dernière modification le 08 mars 2019 à 22:06.
Tu oublie le forth! 3 lignes. La nasa fait quand même tourner un téléscope avec, entre autre.
https://www.forth.com/resources/space-applications/
Formidable language! C'est mon premier amour, le vrai, juste après avoir perdu ma virginité avec le basic. Dsl
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.