Răspuns :
Salut, imi cer scuze ca nu te pot ajuta mai mult, insa nu am timp. Am am un tip de algortim gata facut pentru altcineva, insa in C++. care converteste din romane in arabe:
#include <iostream>
#include <cstring>
using namespace std;
int main(){
char s[10];
int n=0, i;
cout<<"Numar roman: "; cin>>s;
i=strlen(s);
cout<<i<<endl;
do{
if(s[i-1]=='I'){ n=n+1; i--;}
if(s[i-1]=='V'&&s[i-2]=='I'){ n=n+4; i=i-2;}
else if(s[i-1]=='V'){ n=n+5; i--;}
if(s[i-1]=='X'&&s[i-2]=='I'){ n=n+9; i=i-2;}
else if(s[i-1]=='X'){ n=n+10; i--;}
if(s[i-1]=='L'&&s[i-2]=='X'){ n=n+4; i=i-2;}
else if(s[i-1]=='L'){ n=n+50; i--;}
if(s[i-1]=='C'&&s[i-2]=='X'){ n=n+90; i=i-2;}
else if(s[i-1]=='C'){ n=n+100; i--;}
if(s[i-1]=='D'&&s[i-2]=='C'){ n=n+400; i=i-2;}
else if(s[i-1]=='D'){ n=n+500; i--;}
if(s[i-1]=='M'&&s[i-2]=='C'){ n=n+900; i=i-2;}
else if(s[i-1]=='M'){ n=n+1000; i--;}
}while(i>0);
cout<<"Nr arab: "<< n;
}
Tot ce trebuie sa faci tu, cred, este sa inlocuiesti caracterele cu numere ex: s[i-1]=='I' ar trebui sa fie s==1 (aici ai doua optiuni: fie desfaci numarul prin alte metode, fie folosesti un vector si mergi pe metoda cu s[i-1]==x) si construiesti numarul roman prin concatenare.