#include <stdio.h>
int Romano2Intero(char ch)
{
int ris;
switch (ch) {
case 'I': ris = 1; break;
case 'V': ris = 5; break;
case 'X': ris = 10; break;
case 'L': ris = 50; break;
case 'C': ris = 100; break;
case 'D': ris = 500; break;
case 'M': ris = 1000; break;
default: ris = -1;
}
return ris;
}
int main(void)
{
char corr, succ;
int val_corr, val_succ;
int somma = 0;
printf("Inserisci un numero romano (senza spazi) terminato da '\\n'\n");
printf("Il numero romano deve essere corretto!\n");
printf("(cioe' una sequenza di cifre M,D,C,L,X,V,I in ordine corretto)\n");
scanf("%c", &corr);
if (corr != '\n') {
val_corr = Romano2Intero(corr);
scanf("%c", &succ);
while (succ != '\n') {
val_succ = Romano2Intero(succ);
if (val_corr >= val_succ)
somma = somma + val_corr;
else somma = somma - val_corr;
corr = succ;
val_corr = val_succ;
scanf("%c", &succ);
}
somma = somma + val_corr;
}
printf("Numero corrispondente: %d\n", somma);
return 0;
}