concours de code - C - Programmation
Marsh Posté le 02-08-2003 à 17:58:43
est ce que les trucs du genre
Code :
|
sont acceptés ou alors faut il un total respect du C sachant que la declaration de i dans la boucle for est du c++ et non du c ?
Marsh Posté le 02-08-2003 à 18:01:14
c'est validé C99, donc ça passe sans problème avec un compilateur moderne
Marsh Posté le 02-08-2003 à 18:16:16
Code :
|
spoiler pour taz uniquement
Spoiler : |
Marsh Posté le 02-08-2003 à 18:20:59
1) on a dit standard
2) il y a des erreurs
3) ça manque de clareté
( 4) pour des raisons de propretés, j'aimerais qu'on fasse en sorte que argv et argc ne soit pas modifiés)
Marsh Posté le 02-08-2003 à 18:55:36
J'ose ?
Allez, j'ose (c'est du C99) :
Code :
|
Marsh Posté le 02-08-2003 à 19:01:47
A mon tour :
Code :
|
Marsh Posté le 02-08-2003 à 19:25:15
kadreg a écrit : J'ose ?
|
1) ta macro est horrible, et tres mal ecrite
2) c bien mais ça ne fait pas ce qui est demandé
Marsh Posté le 02-08-2003 à 19:27:57
Taz a écrit : 1) ta macro est horrible, et tres mal ecrite |
Je sais, je voulais une macro moche et de l'arithmétique de pointeur à la con.
Taz a écrit : |
exemple ?
Marsh Posté le 02-08-2003 à 19:29:05
*Syl* a écrit : A mon tour : |
bien! juste y a des allocations dont on aurait pu se passer et personne n'a l'air d'apprécié les const... vos compilaeurs devraient vous avertir il me semble
ma solution, tres proche de celle de Syl
Code :
|
Marsh Posté le 02-08-2003 à 19:34:31
kadreg a écrit : |
1) ben elle est laide comme tout, surtout que tu t'en sert qu'une fois, on avait dit 'programme clair'. elle est illisible. je parie qu'au début t'avais ecrit INF(truc++,) et zou tu t'es vite rattrapé... non
2) oops, j'ai lu trop vite... désolé. cela dit, t'aurais pu faire un effort en réutilisant qsort
3) on va dire que t'a le programme le plus lent, avec le plus de tests inutiles (comme celui du printf par exemple)
Marsh Posté le 02-08-2003 à 19:38:23
Taz a écrit : |
oui
Taz a écrit : |
J'avais envie de faire un peu porc
Marsh Posté le 02-08-2003 à 19:40:07
Syl & kadreg, je retire les bons points.
vous pensez pas qu'une fonction déclarée comme retourant un int doit effectivement retourner un int
edit: voir plus bas
Marsh Posté le 02-08-2003 à 19:40:18
Taz a écrit : 1) on a dit standard |
- qu'est ce qui n'est pas standard?
- quelles sont mes erreurs?
- ok
- ok aussi
Marsh Posté le 02-08-2003 à 19:41:26
ReplyMarsh Posté le 02-08-2003 à 19:42:10
Taz a écrit : |
Pas con d'avoir réutilisé les pointeurs vers les arguments, j'y avais pas pensé d'où mes malloc et strcpy
Marsh Posté le 02-08-2003 à 19:42:16
Taz a écrit : Syl & kadreg, je retire les bons points. |
http://forum.hardware.fr/forum2.ph [...] 54#t475470
C'est pas pareil en C99 ?
Marsh Posté le 02-08-2003 à 19:43:24
polo021 a écrit : |
1) st truc afx, _stricmp (en plus j'avais dit strcmp)
2) sort((char *)argv ...
Marsh Posté le 02-08-2003 à 19:45:23
kadreg a écrit : |
non, mais la pluspart des compilos sont laxistes.
d'ailleurs, le C99 a suivi le C++, le prototype de main doit etre int
la moralité, c'est que beaucoup de compilos sont faillibles, il faut toujours jeter un oeil
Marsh Posté le 02-08-2003 à 19:48:13
Taz a écrit : Syl & kadreg, je retire les bons points. |
http://www.comeaucomputing.com/techtalk/c99/#return0
http://www.comeaucomputing.com/techtalk/#voidmain
Marsh Posté le 02-08-2003 à 19:52:30
*Syl* a écrit : http://www.comeaucomputing.com/techtalk/c99/#return0 |
je suis entrain de lire un draf C99 pour m'en assurer. c'est une doc de compilo que t'as la, donc prudence
Marsh Posté le 02-08-2003 à 19:54:41
et ben voilà, on a appris quelque chose
Citation : 5.1.2.2.3 Program termination 1 If the return type of the main function is a type compatible with int, a return from the initial call to the main function is equivalent to calling the exit function with the value returned by the main function as its argument;9) reaching the } that terminates the main function returns a value of 0. If the return type is not compatible with int, the termination status returned to the host environment is unspecified. |
edit: je m'étais jamais trop posé la question puisque les exemples du draf sont plein de return 0
Marsh Posté le 02-08-2003 à 19:56:05
Taz a écrit : je suis entrain de lire un draf C99 pour m'en assurer. c'est une doc de compilo que t'as la, donc prudence |
Ouep c'est vrai mais d'après ce qu'ils marquent, ils parlent que de la norme et pas de leur compilo (The intent of this page is to address questions about C99), enfin confirme comme ça on est sûr
Marsh Posté le 02-08-2003 à 20:51:33
voici mon code plus standard, j'ai eu la flemme de copier les param dans un nouveau tableau mais le principe est là.
Code :
|
C'est bon?
Marsh Posté le 02-08-2003 à 20:53:24
#include "stdafx.h"
Marsh Posté le 02-08-2003 à 20:55:06
kadreg a écrit : #include "stdafx.h" |
Citation : unexpected end of file while looking for precompiled header directive |
Marsh Posté le 02-08-2003 à 20:55:26
1) t'es pas tres doué quand tu decides de réinventer le tri
2) iterateur, c'est quoi ce nom de variable à la con
3) peut etre qu'il te faut ton bordlaxfx.h pour compiler, mais c'est pas un entete standard
4) strdup est pas standard
5) manque un milliard de free
6) déclare temp au moment de son initialisation
Marsh Posté le 02-08-2003 à 20:59:23
Taz a écrit : 1) t'es pas tres doué quand tu decides de réinventer le tri |
1) mon tri est tres simple et fonctionne
2) on s'en bat les couilles avec un batteur electrique
3) ranafout faut quand meme bien que je etste pour voir si ca marche non?
4) comment on sait que c'est pas standard?
5) ou ca?
6) ouais pourquoi pas mais bon
Marsh Posté le 02-08-2003 à 21:01:35
polo021 a écrit : |
1) tu peux faire la meme chose en mieux en une ligne
2) non, voir le sujet du topic
3) idem
4) ça l'est pas, voir ta documentation
5) idem
6) idem
Marsh Posté le 02-08-2003 à 22:01:49
kadreg a écrit : J'ose ? |
au fait, au lieu de nous pondre des macros, le C99 dispose du mot-clef 'inline' 'as fast as macro'
fais en bon usage
Marsh Posté le 02-08-2003 à 22:47:29
Code :
|
je précise juste que ce n'est pas de moi mais d'un copain de promo !
Marsh Posté le 02-08-2003 à 22:51:34
Tchoupinette a écrit : |
alors ça va.
pourquoi tout le monde fais du tri par bulles à gogo: y a pasplus mauvais, alos que le tri par sélection est aussi simple et déjà meilleur. encore la palme des bons noms de variables felem, il m'a fallu un moment pour penser que ct peut être first-element
Marsh Posté le 02-08-2003 à 22:55:55
Taz a écrit : alors ça va. |
Alors il te dit que son tri à bulles marche tres bien, que ses noms de variable sont tres bien et que oui c'est first element.
( c lui qui a choisi le smiley pas moi)
Marsh Posté le 02-08-2003 à 23:31:14
1/ Le tri à bulle c'est mal
2/
Citation : pour des raisons de propretés, j'aimerais qu'on fasse en sorte que argv et argc ne soit pas modifiés |
Marsh Posté le 02-08-2003 à 23:47:19
un autre prog de la meme personne :
Code :
|
il me dit de dire que ni argc ni argv ne sont modifiés.²
Marsh Posté le 02-08-2003 à 23:51:40
un ajout de sa part :
Code :
|
Marsh Posté le 02-08-2003 à 23:54:27
alors maitre taz, jvois bien que ton code est clair et quand meme très simple
tu peux m'expliquer l'utilisation du qsort, comment ca fonctionne et pk c'est plus rapide comme tri que le tri à bulle (voir meme me le montrer en mathématique)
Marsh Posté le 02-08-2003 à 23:55:04
Tchoupinette a écrit : il me dit de dire que ni argc ni argv ne sont modifiés.² |
Code :
|
Il en est sûr ?
Marsh Posté le 02-08-2003 à 23:55:15
Tchoupinette a écrit : un autre prog de la meme personne :
|
ouais mais la regarde la longueur du code comparé celui de taz, et ca doit etre plus lent
Marsh Posté le 02-08-2003 à 23:56:50
burgergold a écrit : alors maitre taz, jvois bien que ton code est clair et quand meme très simple |
http://www.cs.princeton.edu/~ah/al [...] kSort.html
Marsh Posté le 02-08-2003 à 17:56:45
suite au topic du même nom en C++, voici le même pour les inconditionnels du C.
sont acceptés: norme ANSI, C9x
#1 :le premier défi était: afficher les arguments de la ligne de commande dans l'ordre lexicographique (donné par strcmp par exemple)
l'objectif est un code clair, propre, sur (s'il en est) et élégant
edit: pour ceux qui utilise gcc, le code doit compilé sans Warnings avec
gcc -Wall -std=c89 -pedantic
gcc -Wall -ansi -pedantic
pour la norme ansi
gcc -Wall -std=c99 -pedantic
pour C99
les autres normes sont mineures
Message édité par Taz le 02-08-2003 à 18:08:32