Kod:
#include<stdio.h>
int b[50];
romarakaminaceviri()
{
char c[50];
int i,sayi,sayac1=0;
scanf("%d",&sayi);
//burda arap rakami seklindeki sayida kac tane roma rakamlarinin bulundugu ve herhangi bir roma rakamindan 4 tane varsa da onu kisa yonteme cevirme ve bu sayilari yazdirma islenmistir.ORNEK 401 sayisinda aslinda 4 tane C rakami vardir ama burada bu sayi CCCC yerine CD olmustur.
if(sayi/1000>=1)
{
sayac1=sayi/1000;
sayi-=sayac1*1000;
for(i=1;i<=sayac1;i++)
printf("M");
}if(sayi/500>=1)
{
sayac1=sayi/500;
sayi-=sayac1*500;
for(i=1;i<=sayac1;i++)
printf("D");
}if(sayi/100>=1)
{
sayac1=sayi/100;
sayi-=sayac1*100;
if(sayac1==4)
printf("CD");
else
for(i=1;i<=sayac1;i++)
printf("C");
}if(sayi/50>=1)
{
sayac1=sayi/50;
sayi-=sayac1*50;
if(sayac1==4)
printf("LC");
else
for(i=1;i<=sayac1;i++)
printf("L");
}if(sayi/10>=1)
{
sayac1=sayi/10;
sayi-=sayac1*10;
if(sayac1==4)
printf("XL");
else
for(i=1;i<=sayac1;i++)
printf("X");
}if(sayi/5>=1)
{
sayac1=sayi/5;
sayi-=sayac1*5;
if(sayac1==4)
printf("VX");
else
for(i=1;i<=sayac1;i++)
printf("V");
}
if(sayi/1>=1)
{
sayac1=sayi/1;
sayi-=sayac1*1;
if(sayac1==4)
printf("IV");
else
for(i=1;i<=sayac1;i++)
printf("I");
}
}
araprakamaceviri()
{
int i,top=0,sayac=0;
char a[50];
int k=0;
scanf("%s",a);
//burda ise roma rakamini teker teker ayirip bir char diziye atilmistir.daha sonra bu dizinin elemanlari teker teker normal sayiya cevrilip baska bir int diziye atilmistir.eger roma rakami ORNEK IV seklindeyse bunu V - I yapmis ve 4 yazmistir.
for(i=0;i<50;i++)
{
if(a[i]=='M')
{
sayac++;
b[i]=1000;
}
else if(a[i]=='D')
{
sayac++;
b[i]=500;
}
else if(a[i]=='C')
{
sayac++;
b[i]=100;
}
else if(a[i]=='L')
{
sayac++;
b[i]=50;
}
else if(a[i]=='X')
{
sayac++;
b[i]=10;
}
else if(a[i]=='V')
{
sayac++;
b[i]=5;
}
else if(a[i]=='I')
{
sayac++;
b[i]=1;
}
else break;
}
for(i=0;i<sayac;i++)
{
if(i==sayac-1 && b[i]<b[i-1])
top+=b[i];
else if(b[i]<b[i+1])
{
top+=b[i+1]-b[i];
i++;
}
else
top+=b[i];
}
printf("%d",top);
}
main()
{
int n;
//burada da hangi islemi yapmak istediginiz ana menude belirlenip hangisini tercih ettiyseniz program o fonksiyona gitmektedir.
printf("Roma rakamini arap rakamina cevirmek istiyorsaniz 1 e,eger arap rakamini roma rakamina cevirmek istiyorsaniz 0 a basin \n\(Roma rakamlarini buyuk karakterde okutunuz...)=>");
scanf("%d",&n);
if(n==1)
araprakamaceviri();
else if(n==0)
romarakaminaceviri();
else printf("yanlis bir sayi girdiniz.");
}