Program to Convert to Roman Numerals

C Source Program to Convert an Input Integer to Roman Numerals:

   #include <stdio.h> M I IV;XCIX XIX"%i",&IV);XL(IV);}V IV);}XL(I IV){CIX XC[]=L;I IX=VI*VI*VI*VI*VI-VI*VI-VI-VI,C=VI*VI-VI+CX,D;V C>VI-XI-XI){CXC CM==CX){D=IX;IX=D/(VI*XI+XI);}D-=IX*CD*CD;V IV>=D){IV-=D;CXC C%XI==XI-CX-CX)X XC[((C-XI)/VI)*XI]);X XC[(C+XI)/XI-CX]);}C--;}X VI*XI+XI);}


How to Invoke the Program at the Command Line:


   % cc -DVI=4 -DCX=1 -DX="putchar(" -DV="while(" -DCM=C%VI -DI=int -DCD="(CM-CX)" -DL='"IVXLCDM"' -DM="main(){" -DXIX="scanf(" -DCXC="if(" -DCIX=char -DXCIX="do{" -DXI=2 roman.c


Sample Run (user input in bold):

   four06% a.out
   1999
   MCMXCIX
   1867
   MDCCCLXVII
   1784
   MDCCLXXXIV
   0
   four06%