Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 exptools 1/6/84; site ihlts.UUCP Path: utzoo!watmath!clyde!burl!we13!ihnp4!ihlts!rjnoe From: rjnoe@ihlts.UUCP (Roger Noe @ N41:48:31, W88:07:13) Newsgroups: net.math Subject: source for Roman numeral converter Message-ID: <345@ihlts.UUCP> Date: Mon, 6-Feb-84 11:31:46 EST Article-I.D.: ihlts.345 Posted: Mon Feb 6 11:31:46 1984 Date-Received: Thu, 9-Feb-84 02:45:44 EST Organization: AT&T Bell Labs, Naperville, IL Lines: 64 /* ROMAN: converts Arabic notation decimal numbers to Roman. */ /* Input is command-line parameter, ASCII string for decimal integer. Up to seven characters, between '0' and '9'. */ /* Output is on standard output, consisting of characters seen below. */ #include char one[] = "ixcmXCM"; /* Lowercase letters used! */ char five[] = "vldVLD"; /* Uppercase used for numerals */ /* with bars over them. */ main(argc, argv) int argc; char *argv[]; { register short i, j, k; char number[8]; char *cp; if(argc < 2) { fprintf(stderr, "Usage: %s \n", argv[0]); exit(1); } for(i=0, cp=argv[1]; i<8 && *cp != '\0'; i++, cp++) if(*cp >= '0' && *cp <= '9') number[i] = *cp; else { fprintf(stderr, "Illegal character: %c\n", *cp); exit(2); } if(i == 8) { fprintf(stderr, "Parameter out of range\n"); exit(2); } cp=number; while(i) { j = *cp++ - '0'; if(--i == 6) for(k=0; k= 5) { putchar(five[i]); j -= 5; } for(k=0; k