Hello ,
I need help on how to change user entered numerical number into Roman character.
For example , 1 = i , 2 = ii , 5 = v , 10 = x , 13 = xiii etc...
I have done the programming half way and do not know how to continue
from 11 onward.
Please advice !!!
---------------------------------------------------------------------
Code:
#include<stdio.h>
int romanize(int q, int base, char letter)
{
int counter, counter2, temp, test;
if(base == 1)
{
if(q < 5)
{
printf("Romanize character is ");
for(counter = 1; counter <= q; counter++)
{
printf("%c",letter);
}
}
if(q >=5 && q <=9)
{
printf("Romanize character is v");
temp = q - 5;
for(counter = 1; counter <= temp; counter++)
{
printf("%c",letter);
}
}
}
//-------------------------------------------------------------------------------------------
if(base == 2)
{
test = q;
counter = 0;
counter2 = 0;
if(test <= 10 && test <= 49)
{
while( test >= 9 )
{
test = test - 10;
counter2++;
}
printf("inside loop is : %d\n",counter2);
printf("Romanize character is ");
for(counter = 1; counter <= counter2; counter++)
{
printf("%c",letter);
}
if(test < 5)
{
for(counter = 1; counter <= test; counter++)
{
printf("i");
}
}
if(test >=5 && test <=9)
{
printf("v");
temp = test - 5;
for(counter = 1; counter <= temp; counter++)
{
printf("%i");
}
}
}
}
}
main()
{
int i, n, ch, number, count, intnumber[10];
number = 0, count=0, i=0;
printf("input ?: ");
ch = getchar();
while(ch!='\n')
{
if('0' <= ch && ch <= '9')
{
//This is to count the number of digit the user has enter//
n = 0;
n = n * 10;
n = n + (ch - '0');
intnumber[i] = n;//Store each entered digit into array "intnumber[]"//
count++;
i++;
//--------------------------------------------------------//
number = number * 10;
number = number + (ch - '0');
}
ch = getchar();
}
printf("count is %d\n",count);
printf("number is %d\n",number);
if( count <= 1 ) // number is less than 10
{
romanize(number,count,'i');
}
else if( count > 1 ) // number is (10 <= number <=99)
{
romanize(number,count,'x');
}
}