A number of question answers have been merged and shortened somewhat. Fix link in the menu of all html pages and the inc/ files that was broken due to renaming an anchor. The guidelines and rules have had a link fix (to the FAQ) as well as some additional points added about the mkiocccentry toolkit. More work in the FAQ needs to be done, including with the how to enter the IOCCC, but as so much work has been done already I have decided to make the commit to get these many important changes out of the way.
To build:
make all
There is an alternate version that does something different
that can be used if your compiler is incapable of compiling X=g()... in
main(). It can be used for another purpose too.
To use:
./pjr
Alternate code:
Note that some compilers will be unable to compile the expression X=g()... in
main() due to lack of temporary stack space. One might want to try replacing
main() with:
main(){X=s().v().o().o().l().S().d().l().i().o().w().N();}
if this is a problem, which is what this alternate code is.
NOTE: it prints something else and it is what the author suggested one try as well.
Alternate build:
make alt
Alternate use:
./pjr.alt
Judges' remarks:
This program prints out a string. Can you figure out how it is done?
By use of pointers to functions returning a struct of pointers to functions!
NOTICE to those who wish for a greater challenge:
If you want a greater challenge, don't read any further: just try to understand the program via the source.
If you get stuck, come back and read below for additional hints and information.
What this entry does:
This program prints out the string:
the quick brown fox jumped over the lazy dog
Author's remarks:
It is simple to make the program print other strings. Each alphabetical character from a to z is printed out as its opposite:
a->z b->y c->x etc
To encode a new string input the string as it is meant to come out:
X=s().v().o().o().l().S().d().l().i().o().w().N();
Note: S() represents a space and N() a newline. This will now
produce...
hello world
By the way, there is actually a piece of code which is not used in the original program! I leave it as an intellectual exercise to the reader to find out what it is.