Arkadaşlar acilen c++ da roma rakamlarını normal rakamlara, normal rakamları roma rakamlarına çeviren bir programa ihtiyacım var. nasıl yazılır bu program bilmiyorum. yazıp gönderirseniz çok memnun olurum. şimdiden ilginize teşekkürler
#include <stdio.h>
int main()
{
float i,a,b,c,d,e,f,g;
int num=0;
char ch;
printf("Roma rakamina cevrilecek sayi [1 - 2000 arasi]:");
fflush(stdin);
scanf("%c",&ch);
while(ch>='0' && ch<='9')
{
num=num*10+ch-'0';
scanf("%c",&ch);
}
a=(float)num/1000;
b=((float)num-a*1000)/500;
c=((float)num-a*1000-b*500)/100;
d=((float)num-a*1000-b*500-c*100)/50;
e=((float)num-a*1000-b*500-c*100-d*50)/10;
f=((float)num-a*1000-b*500-c*100-d*50-e*10)/5;
g=(float)num-a*1000-b*500-c*100-d*50-e*10-f*5;
for(i=0;i<a;i++)
printf("M");
if(b>1)
{
c=c+5*(b-1);
b=1;
}
if(b==1 && c==4)
{
printf("CM");
c=c-4;
}
else
{
for(i=0;i<b;i++)
printf("D");
}
if(c>4)
{
d=d+2*(c-4);
c=4;
}
if(c==4)
printf("CD");
else
{
for(i=0;i<c;i++)
printf("C");
}
if(d>1)
{
e=e+5*(d-1);
d=1;
}
if(d==1 && e==4)
{
printf("XC");
e=e-4;
}
else
{
for(i=0;i<d;i++)
printf("L");
}
if(e>4)
{
f=f+2*(e-4);
e=4;
}
if(e==4)
printf("XL");
else
{
for(i=0;i<e;i++)
printf("X");
}
if(f>1)
{
g=g+5*(f-1);
f=1;
}
if(f==1 && g==4)
{
printf("IX");
g=g-4;
}
else
{
for(i=0;i<f;i++)
printf("V");
}
if(g==4)
printf("IV");
else
{
for(i=0;i<g;i++)
printf("I");
}
printf("\n");
return main();
}
paranoiac' Alıntı:bölme işlemi fln çok uzun... biz sınav olduumuzda da aynı tip bi soru gelmişti... basamaklara ayırırken 3 satırlık bir for döngüsü yetmişti 9 basamaklı bi sayı için![]()
çok saollasınKod:#include <stdio.h> int main() { float i,a,b,c,d,e,f,g; int num=0; char ch; printf("Roma rakamina cevrilecek sayi [1 - 2000 arasi]:"); fflush(stdin); scanf("%c",&ch); while(ch>='0' && ch<='9') { num=num*10+ch-'0'; scanf("%c",&ch); } a=(float)num/1000; b=((float)num-a*1000)/500; c=((float)num-a*1000-b*500)/100; d=((float)num-a*1000-b*500-c*100)/50; e=((float)num-a*1000-b*500-c*100-d*50)/10; f=((float)num-a*1000-b*500-c*100-d*50-e*10)/5; g=(float)num-a*1000-b*500-c*100-d*50-e*10-f*5; for(i=0;i<a;i++) printf("M"); if(b>1) { c=c+5*(b-1); b=1; } if(b==1 && c==4) { printf("CM"); c=c-4; } else { for(i=0;i<b;i++) printf("D"); } if(c>4) { d=d+2*(c-4); c=4; } if(c==4) printf("CD"); else { for(i=0;i<c;i++) printf("C"); } if(d>1) { e=e+5*(d-1); d=1; } if(d==1 && e==4) { printf("XC"); e=e-4; } else { for(i=0;i<d;i++) printf("L"); } if(e>4) { f=f+2*(e-4); e=4; } if(e==4) printf("XL"); else { for(i=0;i<e;i++) printf("X"); } if(f>1) { g=g+5*(f-1); f=1; } if(f==1 && g==4) { printf("IX"); g=g-4; } else { for(i=0;i<f;i++) printf("V"); } if(g==4) printf("IV"); else { for(i=0;i<g;i++) printf("I"); } printf("\n"); return main(); }
roma rakamlarıyla ilgili fazla bilgim olmadığı için kendim yazmaya üşendim ve şöyle bir şey buldum... güzel gibi ama çok iş... üstteki işlem kısaltılabilir gibi?? ne dersiniz üstadlar?