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");
}