Friday 17 December 2010

Program for To convert roman number to it’s decimal equivalent

Description:


In this program we have to take the roman value. This value is converted into a it’s equivalent decimal number.
Ex:  X=10

Program:

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>

void main()
{
int *a,len,i,j,k; char *rom;
clrscr();
printf("Enter the Roman Numeral:"); scanf("%s",rom);
len=strlen(rom);

for(i=0;i<len;i++) // loop will continue until I is not graterthan length.
{
if(rom[i]=='I')
a[i]=1;
else if(rom[i]=='V') a[i]=5;

else  if(rom[i]=='X') a[i]=10;

else if(rom[i]=='L') a[i]=50;

else if(rom[i]=='C') a[i]=100;

else if(rom[i]=='D') a[i]=500;

else if(rom[i]=='M') a[i]=1000;

else
{
printf("\nInvalid Value");
getch();
exit(0);
}
  }

 k=a[len-1];







91



 for(i=len-1;i>0;i--) // loop will continue until I lessthan zero
 {
if(a[i]>a[i-1]) // check the condition
k=k-a[i-1];
  else if(a[i]==a[i-1] || a[i]<a[i-1])
 k=k+a[i-1];
}
printf("\nIts Decimal Equivalent is: %d",k );
getch();
}

Output:

Enter the Roman Numeral:D
Its Decimal Equivalent is:500

Enter the Roman Numeral:X
Its Decimal Equivalent is:10

Enter the Roman Numeral:23
Invalid Value

Conclusion:

 The program is error free

VIVA QUESTIONS:

1) What is difference between structure and unions ?

Ans : The amount of memory required to store a structure variable is the sum of size all the members in addition to the padding bytes that may be provided by the compiler. In case of a union the amount of memory required is the same as that required by its largest member.

2) What are various operations performed on union ?

Ans: i)An union variable can be assigned to another union variable
ii) A union variable can be passed to a function as a parameter

iii) The address of the union variable can be extracted by using the address of operator (&).



Program


Strings
structures
c programs

No comments:

Post a Comment