The International Obfuscated C Code Contest (IOCCC) is a programming contest that celebrates creative, deliberately obfuscated C programs—and a public archive where you can explore winning entries from 1984 onward. The official site’s latest contest page identified here is for the 2025, 29th IOCCC; contest rules and dates change by cycle, so entrants should check the live official rules rather than reuse an old edition’s requirements.
What is the International Obfuscated C Code Contest?
The IOCCC challenges programmers to write C programs whose source is unusually difficult, surprising or entertaining to understand, while still producing a meaningful result. It is both a contest and a long-running archive: the official site links to recent winners, all winning entries and past contests, with its year archive reaching back to the first contest in 1984.
As an Amazon Associate I earn from qualifying purchases.
Obfuscation is not just making code unreadable at random. The appeal is the ingenuity in how a program’s compact or unusual source produces its behavior. Winning entries span practical tools, games, emulators and visual experiments, making the archive useful to C programmers, students and curious readers—not only prospective contestants.
Recommended Free Tools
Where can you find IOCCC winning entries?
Start with the official archive of past winners and browse by year. The archive pairs entries with contest and award context, and its range is easier to appreciate through examples:
#1 Best Overall
- 2014: a QR encoder and an ASCII-to-DNA transcoder.
- 2015: a handwriting/Braille entry and a calculator.
- 2024: a Wordle hard-mode solver and an LLM inference engine.
- Across other years: games, emulators, utilities, visual experiments and even a mini operating system.
These examples show the variety of ideas the contest has recognized; they are not a checklist for a future submission or a guarantee that a similar approach would be considered novel.
Start with the 2025 winners
The official page for the 2025, 29th IOCCC links to individual winning entries and provides the winning source in a compressed tarball. The entry pages include information intended to help readers compile and run the programs, with authors’ remarks offering additional context. For understanding a particular program, the entry page is a better starting point than treating its source as a standalone puzzle.
How do you compile and run an IOCCC entry?
There is no single build command that applies to every winner: instructions and requirements can differ by program. Use the selected entry’s own page as the guide, then follow its stated compile and run instructions. The 2025 contest page says the individual entry pages contain most of the information needed to do this.
- Choose an entry from the official winners archive and open its individual page.
- Read the entry’s notes first. Check the listed requirements and instructions before compiling; author remarks may explain expected behavior or unusual details.
- Obtain the source from the entry page or the official winning-source tarball for the relevant contest.
- Build and run it as documented. Do not assume a command or environment for one entry will work for another.
How do you enter the IOCCC?
Use the current contest’s official rules and quick-start resources as the authority for preparing and submitting an entry. The official guidelines are helpful background, but they explicitly distinguish guidance from the rules themselves. They also note that development and testing aids may include code generators, static analysis, runtime analysis, machine-learning tools and language models; the current cycle’s rules determine what applies to an actual submission.
The archived rules for the 28th contest offer an example of why checking the live documents matters. That cycle’s submission window ran from 2024-12-29 through 2025-06-05 UTC, with uploads opening 2025-03-05. Its package used prog.c, a non-empty Makefile and non-empty remarks.md; the resulting C file was checked with the then-current iocccsize(1), alongside other format and tool checks. These are historical requirements for that cycle, not instructions for a later contest. The rules also stated that selected entries might be adapted for the official winners’ site.
What are the IOCCC rules?
Rules are cycle-specific. The available archived rules for the 28th IOCCC are version 28.30, dated 2025-03-03. They should not be treated as the rules for a subsequent cycle. For a current submission, consult the official rules and toolkit for that contest rather than relying on old dates, filenames, limits or packaging steps.
Rank #4
- Used Book in Good Condition
The official guidelines also advise studying previous winners while warning that novelty is time-sensitive: an approach that was unique in one year may be considered old in another. Past winners can teach you how varied and inventive entries can be, but they may not meet later rules or establish that an idea remains novel.
Quick Recap
Best Value
- Used Book in Good Condition
Who should explore the IOCCC archive?
- Contest hopefuls can study previous entries for inspiration and learn how authors explain their programs, while checking the current rules independently.
- C programmers can use the winners as examples of unconventional C techniques and surprising program design.
- Educators and students can choose entries by year and purpose to discuss how source structure, constraints and program behavior interact.
- Curious readers can start with an entry whose output or purpose interests them, then use its page to follow the build and running notes.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




