Je recherche une série de problèmes C (avec des solutions) que je peux utiliser pour construire mes compétences C. Je comprends déjà les bases de la langue, de la syntaxe et de la sémantique. Je cherche une série de problèmes qui m'aideront mes compétences, pas un ensemble de questions simples que vous verrez dans une classe de programmation d'introduction. P>
10 Réponses :
Build Bibliothèques qui mettent en œuvre sophistiqué structures de données , comme des arbres binaires, des dictionnaires etc. p>
Et n'oubliez pas code-golf kbd> em> strong>. p>
Vous ne voulez probablement pas répondre uniquement aux défis (questions) qui ont au moins em> 10 upvotes. p>
+1, bien que je suis tenté de gratter le mot «ping» sur mon ensemble poussiéreux de vrais clubs et remplacez-le par «Perl». Néanmoins, amusant de travailler sur les problèmes de C, en particulier des lasers.
Droite, à ce jour, en particulier Code-Golf, c'est plus que de simples programmes, c'est aussi un forum général et un lieu pour chacun de faire avancer leurs compétences.
écrire un compilateur. Il n'a pas besoin d'être complexe ou même complet: vous pouvez créer une langue simple (un sous-ensemble de Lisp?), Puis écrivez un LXER pour cela. Assurez-vous de commencer par poser la grammaire formelle. Vous toucherez la gestion de la mémoire, les arithmétiques du pointeur et d'autres trucs Neat C. P>
J'ai beaucoup appris sur l'automate et le compilateur-design en écrivant un analyseur YAML simple en C ++. P>
C'est à peu près aussi bon que l'apprentissage C en écrivant un système d'exploitation. Bien sûr, je l'ai fait pour apprendre c, mais je ne recommanderais pas une telle douleur extrême à quiconque (cours, je ne connaissais pas toute la sémantique et de telle de C soit quand j'ai commencé). Tout projet grand complexe vous aidera à apprendre c
Non, mon point est de commencer quelque chose. Je suis intéressé par des compilateurs, des analyseurs, des interprètes et tels. OS, Jeux, Text-Editors - Ils peuvent tous être grands et décourageants. L'astuce est de commencer. Rendez-le aussi petit que possible, même un sous-composant incomplet d'un grand porject. Si vous traitez avec ce qui vous fascine, vous allez bien faire, et vous vous apprécierez même.
Vous pouvez essayer de résoudre certains des problèmes sur projet Euler . Les premiers sont assez simples, mais ils deviennent très difficiles très rapidement. Je pense que c'est beaucoup de plaisir à essayer de trouver le code le plus court ou le code hautement optimisé pour calculer les résultats (cependant, j'utilise généralement C ++ ou Python, pas c). P>
Un avantage Le projet Les problèmes d'Euler sont qu'ils ne sont pas seulement centrés sur la langue; Ce sont des problèmes qui vous font vraiment penser à la manière de développer une solution élégante à des problèmes difficiles. P>
+1 pour la belle suggestion. Cependant, le projet Euler n'est pas ce que l'OP recherche, car il souhaite des problèmes avec leurs solutions, et PE ne montre pas la solution tant que vous n'avez pas résolu le problème vous-même.
Eh bien, le projet Euler vous dit si Votre solution i> est correct, et si vous recherchez Google, vous devez trouver des solutions à de nombreuses solutions, sinon la plupart, des problèmes dans une variété de langues.
Voici une liste de sites avec des juges en ligne (et similaires) qui contiennent une grande variété de problèmes: p>
(les sites sont triés dans l'ordre lexicographique) P>
ACM Live Archive , problèmes d'ACM / CIPC antérieures et finales mondiales. < / p> li>
Arbiter , juge en ligne à l'Université Sharif en Iran. P > li>
Juge en ligne FZU P> LI>
Jam P> Li>
Juge en ligne Harbin P> Li>
KSRU Online Juge P> Li> ol>
10. Juge Jilin Online P>
11. juge en ligne LVIV P>
12. Juge en ligne Moscou P>
13. Juge en ligne de Université National Taiwan P>
14. Problèmes en ligne Système de résolution de problèmes (OPSS) P>
15. Juge en ligne de Université Peking P>
16. défis de programmation p>
17. Project Euler P>
18. juge en ligne Saratov P>
19. juge en ligne de sphère P>
20. juge en ligne TJU P>
21. TopCoder P>
22. Juge en ligne d'Ural P>
23. Gateway de programme d'entraînement USACO P>
24. Le juge en ligne UVA P>
25. Juge en ligne de Université Wuhan P>
26. Le juge en ligne ZJU P>
27. Z-Trenge P>
Essayez le livre de Dennis Ritchie sur la langue de programmation C. Le livre a de très bons problèmes et de lire c'est une joie :) Pour des problèmes plus difficiles, vous pouvez accéder à Concours de programmation Bitwise P>
Le lien est expiré et ne parvient pas à charger. :(
Le référentiel de Knuth de Bitwise pourrait aider dans la noble poursuite :) p>
http: //www-cs-faculty.stanford. EDU / ~ Knuth / fasc1a.ps.gz P>
Ruby Quiz a 156 problèmes avec des solutions. Mais dans Ruby, pas C. Voir la liste de diffusion de Ruby-Lang pour plus d'après que James a cessé d'être Master Ruby Quiz. P>
pratique Code KATAS , la langue n'a pas d'importance. Essayer de résoudre des katas que vous avez déjà fait avec une autre langue est généralement assez efficace d'apprendre une nouvelle langue. P>
Vous pouvez toujours visiter FreshMeat , trouvez quelques projets qui vous intéressent et regardent leur suivi de bogues. Prenez le code et essayez de réparer quelques problèmes. P>
Ceci aide à ouvrir la source tout en vous aidant à vous permettre de passer au code de quelqu'un d'autre avec des lunettes de protection. P>
@James qui devrait être une réponse: p +1
@Seth: Je suppose que cela devrait. Fixé. :-)
OP: Mise à jour de la question initiale, avec une réponse.