0% found this document useful (0 votes)
65 views5 pages

1.j) Program To Convert Numbers To Roman Numerals

This C program converts decimal numbers to Roman numerals. It uses functions to add single characters or pairs of characters to an array based on the number input by the user. Large numbers are broken down into thousands, hundreds, tens and ones places. Conditionals determine if single numerals or combined numerals are used, such as using CD for 400 instead of CCCC. The program then prints the Roman numeral version of the input number.

Uploaded by

blal1963
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views5 pages

1.j) Program To Convert Numbers To Roman Numerals

This C program converts decimal numbers to Roman numerals. It uses functions to add single characters or pairs of characters to an array based on the number input by the user. Large numbers are broken down into thousands, hundreds, tens and ones places. Conditionals determine if single numerals or combined numerals are used, such as using CD for 400 instead of CCCC. The program then prints the Roman numeral version of the input number.

Uploaded by

blal1963
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

1.

j) Program to Convert Numbers to Roman Numerals


#include <stdio.h>

void predigit(char num1, char num2);


void postdigit(char c, int n);

char romanval[1000];
int i = 0;
int main()
{
int j;
long number;

printf("Enter the number: ");


scanf("%d", &number);
if (number <= 0)
{
printf("Invalid number");
return 0;
}
while (number != 0)
{
if (number >= 1000)
{
postdigit('M', number / 1000);
number = number - (number / 1000) * 1000;
}
else if (number >= 500)
{
if (number < (500 + 4 * 100))
{

1.j) Program to Convert Numbers to Roman Numerals


postdigit('D', number / 500);
number = number - (number / 500) * 500;
}
else
{
predigit('C','M');
number = number - (1000-100);
}
}
else if (number >= 100)
{
if (number < (100 + 3 * 100))
{
postdigit('C', number / 100);
number = number - (number / 100) * 100;
}
else
{
predigit('L', 'D');
number = number - (500 - 100);
}
}
else if (number >= 50 )
{
if (number < (50 + 4 * 10))
{
postdigit('L', number / 50);
number = number - (number / 50) * 50;
}
else

1.j) Program to Convert Numbers to Roman Numerals


{
predigit('X','C');
number = number - (100-10);
}
}
else if (number >= 10)
{
if (number < (10 + 3 * 10))
{
postdigit('X', number / 10);
number = number - (number / 10) * 10;
}
else
{
predigit('X','L');
number = number - (50 - 10);
}
}
else if (number >= 5)
{
if (number < (5 + 4 * 1))
{
postdigit('V', number / 5);
number = number - (number / 5) * 5;
}
else
{
predigit('I', 'X');
number = number - (10 - 1);
}

1.j) Program to Convert Numbers to Roman Numerals


}
else if (number >= 1)
{
if (number < 4)
{
postdigit('I', number / 1);
number = number - (number / 1) * 1;
}
else
{
predigit('I', 'V');
number = number - (5 - 1);
}
}
}
printf("Roman number is: ");
for(j = 0; j < i; j++)
printf("%c", romanval[j]);
return 0;
}

void predigit(char num1, char num2)


{
romanval[i++] = num1;
romanval[i++] = num2;
}

void postdigit(char c, int n)


{
int j;

1.j) Program to Convert Numbers to Roman Numerals


for (j = 0; j < n; j++)
romanval[i++] = c;
}

Enter the number: 500


Roman number is be: D

You might also like