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