Ciao a tutti,
Ho bisogno di creare un algoritmo che dato in input un numero arabo lo trasformi in romano.
Ho già provedduto a farlo, ma una volta eseguito non mi da nnt come output ... potete aiutarmi a trovare l'errore?
codice:
#include <stdio.h>
#include <stdlib.h>
int main() {
int unita;
int decine;
int centinaia;
int migliaia;
int num;
printf("Inserisci il numero che vuoi convertire:");
scanf("%d", &num);
migliaia=num/1000;
centinaia=(num-(migliaia*1000))/100;
decine=(num-(migliaia*1000)-(centinaia*100))/10;
unita=(num-(migliaia*1000)-(centinaia*100)-(decine*10));
switch(migliaia){
case '1': printf("M");
break;
case '2': printf("MM");
break;
case '3': printf("MMM");
break;
case '4': printf("MMMM");
break;
case '5': printf("MMMMM");
break;
case '6': printf("MMMMMM");
break;
case '7': printf("MMMMMMM");
break;
case '8': printf("MMMMMMMM");
break;
case '9': printf("MMMMMMMMM");
break;
}
switch (centinaia) {
case '1': printf("C");
break;
case '2': printf("CC");
break;
case '3': printf("CCC");
break;
case '4': printf("CD");
break;
case '5': printf("D");
break;
case '6': printf("DC");
break;
case '7': printf("DCC");
break;
case '8': printf("DCCC");
break;
case '9': printf("CM");
break;
}
switch (decine){
case '1': printf("X");
break;
case '2': printf("XX");
break;
case '3': printf("XXX");
break;
case '4': printf("XL");
break;
case '5': printf("L");
break;
case '6': printf("LX");
break;
case '7': printf("LXX");
break;
case '8': printf("LXXX");
break;
case '9': printf("XC");
break;
}
switch (unita){
case '1': printf("I");
break;
case '2': printf("II");
break;
case '3': printf("III");
break;
case '4': printf("IV");
break;
case '5': printf("V");
break;
case '6': printf("VI");
break;
case '7': printf("VII");
break;
case '8': printf("VIII");
break;
case '9': printf("IX");
break;
}
system("pause");
}