home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 14 / CD_ASCQ_14_0694.iso / maj / 653 / roman.c < prev    next >
C/C++ Source or Header  |  1994-04-03  |  2KB  |  98 lines

  1. /*
  2.  *
  3.  *        ROMAN.C  -  Converts integers to Roman numerals
  4.  *
  5.  *             Written by:  Jim Walsh
  6.  *
  7.  *             Compiler  :  Microsoft QuickC v2.5
  8.  *
  9.  *        This Program Is Released To The Public Domain
  10.  *
  11.  */
  12.  
  13. #include <stdio.h>
  14. #include <stdlib.h>
  15. #include <string.h>
  16.  
  17. int main( int argc, char *argv[] )
  18. {
  19.     int value, dvalue;
  20.     char roman[80];
  21.     roman[0] = '\0';
  22.     if( argc == 2 )
  23.         value = atoi( argv[1] );
  24.     else
  25.     {
  26.         printf( "\nEnter an integer value: " );
  27.         scanf( "%d", &value );
  28.     }
  29.     dvalue = value;
  30.     while( value >= 1000 )
  31.     {
  32.         strcat( roman, "M" );
  33.         value -= 1000;
  34.     }
  35.     if( value >= 900 )
  36.     {
  37.         strcat( roman, "CM" );
  38.         value -= 900;
  39.     }
  40.     while( value >= 500 )
  41.     {
  42.         strcat( roman, "D" );
  43.         value -= 500;
  44.     }
  45.     if( value >= 400 )
  46.     {
  47.         strcat( roman, "CD" );
  48.         value -= 400;
  49.     }
  50.     while( value >= 100 )
  51.     {
  52.         strcat( roman, "C" );
  53.         value -= 100;
  54.     }
  55.     if( value >= 90 )
  56.     {
  57.         strcat( roman, "XC" );
  58.         value -= 90;
  59.     }
  60.     while( value >= 50 )
  61.     {
  62.         strcat( roman, "L" );
  63.         value -= 50;
  64.     }
  65.     if( value >= 40 )
  66.     {
  67.         strcat( roman, "XL" );
  68.         value -= 40;
  69.     }
  70.     while( value >= 10 )
  71.     {
  72.         strcat( roman, "X" );
  73.         value -= 10;
  74.     }
  75.     if( value >= 9 )
  76.     {
  77.         strcat( roman, "IX" );
  78.         value -= 9;
  79.     }
  80.     while( value >= 5 )
  81.     {
  82.         strcat( roman, "V" );
  83.         value -= 5;
  84.     }
  85.     if( value >= 4 )
  86.     {
  87.         strcat( roman, "IV" );
  88.         value -= 4;
  89.     }
  90.     while( value > 0 )
  91.     {
  92.         strcat( roman, "I" );
  93.         value--;
  94.     }
  95.     printf( "\n%d = %s\n", dvalue, roman );
  96.     return(0);
  97. }
  98.