Witam, czy znacie lepszy sposób na konwersje z systemu arabskiego na rzymski,
moglibyście sprawdzić czy mój kod nie wysypie się na różnych przykładach progowych:
void rzymskie()
{
char akcja='t';
do
{
cout<<"Czy chcesz wprowadzić cyfrę arabską"<<endl;
cout<<"(naciśnij klawisz t/T, jeśli tak lub n/N jeśli nie)?"<<endl;
cin>>akcja;
int arabska;
string rzymska;
if(akcja=='t' || akcja=='T')
{
cin>>arabska;
do
{
if(arabska>=1000)
{
arabska=arabska-1000;
rzymska=rzymska+"M";
continue;
}
if(arabska>=500)
{
arabska=arabska-500;
rzymska=rzymska+"D";
continue;
}
if(arabska>=400)
{
arabska=arabska-400;
rzymska=rzymska+"CD";
continue;
}
if(arabska>=100)
{
arabska=arabska-100;
rzymska=rzymska+"C";
continue;
}
if(arabska>=90)
{
arabska=arabska-90;
rzymska=rzymska+"XC";
continue;
}
if(arabska>=50)
{
arabska=arabska-50;
rzymska=rzymska+"L";
continue;
}
if(arabska>=40)
{
arabska=arabska-40;
rzymska=rzymska+"XL";
continue;
}
if(arabska>=10)
{
arabska=arabska-10;
rzymska=rzymska+"X";
continue;
}
if(arabska>=5)
{
arabska=arabska-5;
rzymska=rzymska+"V";
continue;
}
if(arabska>=4)
{
arabska=arabska-4;
rzymska=rzymska+"IV";
continue;
}
if(arabska>=1)
{
arabska=arabska-1;
rzymska=rzymska+"I";
continue;
}
}while(!arabska==0);
cout<<rzymska<<endl;
}
if(akcja=='n' || akcja=='N')
{
}
cout<<"Czy powtórzyć obliczenia"<<endl;
cout<<"(naciśnij klawisz t/T, jeśli tak lub n/N jeśli nie)?"<<endl;
cin>>akcja;
}while(akcja!='n' && akcja!='N');
}